use*_*203 1 r shiny shinymodules
我已经从模块定义了我的操作按钮,如下所示。
现在按下时它无法触发观察事件。我认为模块是隔离的且自给自足的,但似乎并非如此。将其放入我的服务器中,效果很好,但我不想弄乱我的服务器。
任何想法?
cool_UI <- function(id) {
ns <- NS(id)
tagList(
uiOutput(ns("myUi"))
)
}
cool <- function(input, output, session) {
observeEvent(input$butonid,{
print("Button from Module")
})
output$myUi <- renderUI({
tabsetPanel(
tabPanel(title = "sometitle",actionButton("butonid","My Button"))
)
})
}
library(shiny)
ui <- fluidPage(
cool_UI("myUi")
)
server <- function(input, output, session) {
callModule(cool,"myUi")
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
您需要为您在模块服务器函数中创建的按钮的 ID 命名空间。
cool <- function(input, output, session) {
ns <- session$ns
observeEvent(input$butonid,{
print("Button from Module")
})
output$myUi <- renderUI({
tabsetPanel(
tabPanel(title = "sometitle",actionButton(ns("butonid"),"My Button"))
)
})
}
Run Code Online (Sandbox Code Playgroud)
ns <- session$ns请注意模块服务器函数顶部包含的。
input在模块服务器函数中具有命名空间,但用作小部件 ID 的文本字符串则没有。
| 归档时间: |
|
| 查看次数: |
1150 次 |
| 最近记录: |