この問題についてはすでに多くの調査を行っていますが、これまでのところ、bsModal() の代わりに光沢のある showModal() を使用した場合の解決策は提供されていません。
モーダル ダイアログで rhandsontable を2 回目に表示すると、表示にバグがあります。つまり、すべての列が表示されません。
以下に例を示します。
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() を使用したソリューションをお勧めします。
どんな助けにも感謝します!さらに情報が必要な場合はお知らせください