在一个RStudio Shiny应用程序中,让观察者在初始应用程序加载后开始观察的最佳方法是什么。例如,在下面的应用程序中,我希望选择输入以a
和1
的初始值开始,然后,一旦加载应用程序,当用户从input1中进行选择时,我希望input2已更改到" 3"。但只有在应用程序加载后 - 我希望用户看到" 1"第一
这显然只是一个更复杂的应用程序的一个非常简单的例子。在我更复杂的应用程序中,我设置了一个条件,我将值与全局值进行比较,但必须有一个更简单的方法。
server<-function(session, input, output) {
observeEvent(input$input1, {
updateSelectInput(session, "input2", selected="3")
})
}
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")
),
mainPanel(
)
)
)
shinyApp(ui=ui, server=server)
答案 0 :(得分:0)
有一种更优雅的方法可以做到这一点,但你可以使用一个反应值添加一个计数器,该值随着Input1的每次更改而增加。在第一次更改为输入1时,此计数器增加到2,输入2更改为&#34; 3&#34;。当rv $ X == 2时,我将observeEvent设置为仅在第一次单击时更改Input2,因此当修改Input1时,Input2并不总是更改为3。请参阅下面的服务器fxn:
server<-function(session, input, output) {
rv<-reactiveValues(X = 1)
observeEvent(input$input1,{
if(rv$X==2) updateSelectInput(session, "input2", selected="3")
rv$X<-rv$X+1
})
}