【发布时间】:2015-10-28 17:59:05
【问题描述】:
在我的 RStudio 闪亮应用中,我有更新 selectInputs 的观察者。有没有办法避免一连串的反应?如果用户更改 input1,我希望它更新 input2。但我不希望这触发对 input3 的更新,如下所示。
例如,如果我可以将等效的 isolate 放在周围并更新如下:
isolate(updateSelectInput())
这样它会进行初始更新,但不会触发任何其他更改。
这可能吗?
server<-function(session, input, output) {
observeEvent(input$input1, {
updateSelectInput(session, "input2", selected="3")
})
observeEvent(input$input2, {
updateNumericInput(session, "input3",value=round(rnorm(1),2))
# resetting input 2
updateSelectInput(session, "input2", selected="1")
})
}
ui<-fluidPage(
# Application title
titlePanel("Hello Shiny!"),
# Sidebar with a slider input for the number of bins
sidebarLayout(
sidebarPanel(
selectInput("input1", label="Input1", choices=c("a", "b", "c"), selected="a"),
selectInput("input2", label="Input2", choices=c("1", "2", "3"), selected="1"),
numericInput("input3", label="Input3", value=3)
),
mainPanel(
)
)
)
shinyApp(ui=ui, server=server)
【问题讨论】:
-
你的应用对我来说没有意义,你正在更新
input1,因此它会更新input2,因此input3也会更新。现在,如果您更新input2,那么input3就会更新。