闪亮的操作按钮在模块中不起作用
Shiny Action Button Not working from module
我已经从如下所示的模块中定义了我的操作按钮。
现在,当 pressed.I 认为模块是独立且自给自足但似乎并非如此时,它无法触发观察事件。将其放入我的服务器中效果很好,但我不想弄乱我的服务器。
有什么想法吗?
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)
您需要为您在模块服务器函数中创建的按钮的 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"))
)
})
}
注意在模块服务器函数的顶部包含 ns <- session$ns
。
input
在模块服务器函数中有命名空间,但用作小部件 ID 的文本字符串没有。
我已经从如下所示的模块中定义了我的操作按钮。
现在,当 pressed.I 认为模块是独立且自给自足但似乎并非如此时,它无法触发观察事件。将其放入我的服务器中效果很好,但我不想弄乱我的服务器。
有什么想法吗?
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)
您需要为您在模块服务器函数中创建的按钮的 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"))
)
})
}
注意在模块服务器函数的顶部包含 ns <- session$ns
。
input
在模块服务器函数中有命名空间,但用作小部件 ID 的文本字符串没有。