我今天遇到了同样的问题,并设法找到解决此问题的方法。当模式打开时shiny.semantic
数据表输出仍然被归类为不可见。要解决此问题,您只需在 JavaScript 中添加一行:
$('#my_table').show().trigger('shown');
如果您想在关闭时再次隐藏它,则需要添加更多 JS,但这在 UI 中使用可能会更好tags$script()
而不是在服务器中。
更新的应用程序:
library(shiny)
library(shinyjs)
library(shiny.semantic)
library(DT)
modal.js <- "$('.ui.modal').modal('show');
$('#my_table').show().trigger('shown');"
server <- function(input, output, session) {
output$my_table = DT::renderDataTable(head(iris))
observeEvent(input$open_modal, runjs(modal.js))
}
ui <- semanticPage(
suppressDependencies("bootstrap"),
useShinyjs(),
div(
class = "ui modal",
div(class = "header", "Modal header"),
div(class = "content", div(class = "ui raised segment", DT::dataTableOutput("my_table")))
),
div(class = "ui basic button action-button", id = "open_modal", "Open modal ui")
)
shinyApp(ui, server, options = list(launch.browser = TRUE))