我希望每次增加 actionButton 时变量 x 的值都增加 1,例如,请参见下面的可重现代码。然而,observeEvent 内部的代码是隔离的,x 的值不会增量更新。
library(shiny)
ui <- fluidPage(
actionButton("plus","+1"),
textOutput("value")
)
server <- function(input, output, session) {
x = 1
observeEvent(input$plus,{
x = x+1
output$value = renderText(x)
})
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
您需要确保要更改的值是反应性的。您可以x使用 进行反应式操作reactiveVal()。x然后,当您想要调用的当前值时,x()以及当您想要更改 的值时x,您可以使用x(<new value>)
library(shiny)
ui <- fluidPage(
actionButton("plus","+1"),
textOutput("value")
)
server <- function(input, output, session) {
x = reactiveVal(0)
observeEvent(input$plus,{
x(x()+1) # increment x by 1
})
output$value = renderText(x())
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)