5

我已经对这个问题进行了很多研究,但是到目前为止,在使用闪亮的 showModal() 而不是 bsModal() 时还没有提供解决方案。

当我第二次在模态对话框中显示 rhandsontable时,显示是错误的,即并非所有列都显示。

下面的一个例子:

library(shiny)
library(rhandsontable)

u <- shinyUI(fluidPage(

  # Will show first pop-up
  actionButton("go", "Show Table")

))

s <- shinyServer(function(input,output,session){

  df <- data.frame(Wnr = 1:10)  

  observeEvent(input$go, {

    output$table <- renderRHandsontable({

      rhandsontable(df, width = "100%", height = 200)

    })

    showModal(modalDialog(

      title = "Table",
      rHandsontableOutput("table"),
      footer = tagList(actionButton("go2", "Continue"),
                       modalButton("Stop"))

    ))
  })

  observeEvent(input$go2, {

    removeModal()

    # Recalculate the table, adding new columns
    output$table <- renderRHandsontable({

      df$AC <- 1
      df$BC <- 2

      rhandsontable(df, width = "100%", height = 200)

    })

    showModal(modalDialog(

      title = "Table",
      rHandsontableOutput("table"),
      footer = tagList(actionButton("go2", "Continue"),
                       modalButton("Stop"))


    ))
  })


})

shinyApp(u,s)

有没有办法(可能使用JavaScript)来修复这个显示错误?似乎该$("myModal").on({"shown.bs.modal", ...})技巧不适用于闪亮的模态,因为它们的结构与来自 shinyBS 包的引导模态不同。我不使用 shinyBS 包的一个原因是我无法将自定义操作按钮添加到模式的页脚。所以如果你找到了用shinyBS解决它的方法,我也很高兴。但是,理想情况下,我更喜欢使用 modalDialog() 的解决方案。

我很感激任何帮助!让我知道是否需要更多信息

4

0 回答 0