这是一个示例代码:
library("shiny")
createObserver <- function(id) {
observeEvent(input[[id]], {
message(paste("button", id, "pushed"))
})
}
ui <- actionButton("foo", "bar")
server <- function(input, output) {
createObserver("foo")
}
shinyApp(ui = ui, server = server)
此代码抱怨Warning: Error in observeEventExpr: object 'input' not found
。我可以从理论上将input
变量作为一个函数参数(我现在打算做什么),但是与函数参数的杂耍(input
,output
,session
)感觉真的很混乱。
是否没有其他方法可以将所有这些运行时变量作为参数传递给构建器函数?
处理闪亮的构建器功能时最好的做法是什么?
编辑:
我想我确实必须将输入,输出和任何潜在的反应值对象传递给该功能。
我认为混乱正在使用 input 从服务器出发,请尝试以下操作:
library("shiny")
ui <- actionButton("foo", "bar")
server <- function(input, output) {
createObserver <- function(id) {
observeEvent(input[[id]], {
message(paste("button", id, "pushed"))
})
}
createObserver("foo")
}
shinyApp(ui = ui, server = server)
这里的线索是将您的功能放在服务器中。希望它有帮助