我希望通过使用 shinyjs 的 show 和 hide 功能来切换 UI 的各个部分。我需要在模块内部访问 UI 的一些部分,而这些部分位于模块外部。这种操作是否可行?
请参见附加的应用程序代码。主服务器端代码中的显示/隐藏按钮有效,但模块中的按钮无效。
感谢您的任何建议。
请参见附加的应用程序代码。主服务器端代码中的显示/隐藏按钮有效,但模块中的按钮无效。
感谢您的任何建议。
exampleUI <- function(id) {
ns <- NS(id)
tagList(actionButton(ns("hide_id"), "Module - Hide divs"),
actionButton(ns("show_id"), "Module - Show divs"),
uiOutput(ns("plot_id")))
}
shinyUI(fluidPage(
shinyjs::useShinyjs(),
shinyjs::hidden(tags$div(id = "hidden", "hidden")),
tags$div(id = "shown", "shown"),
actionButton("hide_id", "Hide divs"),
actionButton("show_id", "Show divs"),
exampleUI("eg")))
example <- function(input, output, session)
{
ns <- session$ns
observeEvent(input$hide_id,
{
shinyjs::hide("hidden")
shinyjs::hide("shown")
})
observeEvent(input$show_id,
{
shinyjs::show("hidden")
shinyjs::show("shown")
})
}
shinyServer(function(input, output) {
callModule(example, "eg")
observeEvent(input$hide_id,
{
shinyjs::hide("hidden")
shinyjs::hide("shown")
})
observeEvent(input$show_id,
{
shinyjs::show("hidden")
shinyjs::show("shown")
})
})