我提前道歉,因为没有一个可重复性最小的例子。我试图制作一个,但没有设法重现错误。
所以我在同一个文件夹中有2个脚本(ui.R和server.R)。在服务器脚本的最开始,我想创建一个向量a,它将填充ui-script中2个selectInputs的输入。
#ui
shinyUI(fluidPage(
fluidRow(
column(selectInput(inputId = "input1",
label = "This is input 1",
choices = c("bad","neutral","good"))
column(selectInput(inputId = "input2",
label = "This is input 2",
choices = c("bad","neutral","good"))
#server
shinyServer(function(input, output) {
a <- c(input$input1, input$input2)
})
b <- b[a]
用户界面部分不是问题,服务器部分是。当我运行应用程序时,我收到此错误:
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.)
所以我意识到我必须让这个矢量以某种方式被反应但是我没有看到如何。我尝试使用函数reactive
:
#server
shinyServer(function(input, output) {
a <- reactive({
c(input$input1, input$input2)
})
})
但是当然然后我得到这个错误,因为a不再是一个向量而是一个函数。
invalid subscript type 'closure'