我想在闪亮的模块中使用eventReactive-function。但是,这不能按预期工作。我的代码有什么问题或必须添加什么?
我已经尝试过观察者,但是我想使用eventReactive,因为我需要返回值。
mod_test_UI <- function(id) {
ns <- NS(id)
actionButton(ns("test"), "Test")
}
mod_test <- function(input, output, session) {
ns <- session$ns
observe({
print(input$test)
})
result<- eventReactive(input$test, {
print("ABC")
})
}
ui <- tagList(
mod_test_UI("test-mod")
)
server <- function(input, output, session) {
callModule(mod_test, "test-mod")
}
# app
shinyApp(ui = ui, server = server)
答案 0 :(得分:1)
您需要在eventReactive中返回一个值,如下所示:
mod_test_UI <- function(id) {
ns <- NS(id)
actionButton(ns("test"), "Test")
}
mod_test <- function(input, output, session) {
ns <- session$ns
observe({
print(input$test)
})
result<- eventReactive(input$test, {
return("ABC")
})
observe({
print(result())
})
}
ui <- tagList(
mod_test_UI("test-mod")
)
server <- function(input, output, session) {
callModule(mod_test, "test-mod")
}
# app
shinyApp(ui = ui, server = server)
第二个观察结果只是将result()中现在包含的值打印到屏幕上,以证明其有效。
在这种情况下,return()不是必需的,它可以是如下所示的“ ABC”:
result<- eventReactive(input$test, {
"ABC"
})