【发布时间】:2017-12-23 12:06:15
【问题描述】:
我正在开发一个应用程序,我在其中使用模块来显示不同选项卡的 ui 内容。但是,该模块似乎不与主(或父)应用程序通信。它显示正确的 ui,但在单击 actionButton 时无法执行 observeEvent 函数,它应该更新当前选项卡并显示第二个选项卡。
在我的代码中,我创建了一个命名空间函数并将actionButton 的ID 包装在ns() 中,但是它仍然不起作用。有谁知道怎么回事?
library(shiny)
moduleUI <- function(id){
ns <- NS(id)
sidebarPanel(
actionButton(ns("action1"), label = "click")
)
}
module <- function(input, output, session){
observeEvent(input$action1, {
updateTabItems(session, "tabsPanel", "two")
})
}
ui <- fluidPage(
navlistPanel(id = "tabsPanel",
tabPanel("one",moduleUI("first")),
tabPanel("two",moduleUI("second"))
))
server <- function(input, output, session){
callModule(module,"first")
callModule(module,"second")
}
shinyApp(ui = ui, server = server)
【问题讨论】:
标签: r module shiny shiny-server