我已经知道“ConditionalPannel”会隐藏输出但仍会计算它。 我想知道是否有办法防止闪亮计算输出(在某些特定情况下)
通常我希望能够在我的ShinyUI函数(mainPannel块)中编写类似的内容:
if (bool) {showOutput('comp2', 'nvd3')}
其中bool是一个全局变量,它将依赖于无功输入。我特别想到ShinyUI中定义的checkboxInput
checkboxInput("comparison", p("Compare trips?", value = FALSE)
因此bool将在server.R中定义为:
bool <<- FALSE
output$comp1 <- renderChart({
if (input$comparison) {
rs <- compare_acc(select(), select2())
} else {
rs <- exception_handler
}
rs$set(dom = "comp1")
bool <<- input$comparison
return(rs)
})
然而它不起作用,因为bool保持等于FALSE。 我也试过“reactiveValues”:
在global.R中:
values <- reactiveValues()
values$bool <- FALSE
在Server.R中:
output$comp1 <- renderChart({
if (input$comparison) {
values$bool <<- TRUE
rs <- compare_acc(select(), select2())
} else {
rs <- exception_handler
values$bool <<- FALSE
}
rs$set(dom = "comp1")
return(rs)
})
在ui.R
if (values$bool) {showOutput('comp1', 'nvd3')},
但我仍然无法正常工作,因为我收到以下错误:
Error in .getReactiveEnvironment()$currentContext() :
Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)
请帮忙吗?