闪亮的两个操作按钮,它只响应第二个按钮,而不响应第一个按钮

ric*_*iee 3 r shiny server action-button reactive

告诉我在 R Shiny 中,有两个操作按钮。我想根据我按下的按钮更新数据。但由于某种原因,它只响应第二个按钮,而不响应第一个按钮。解决办法是什么?

if (interactive()) {
  ui <- fluidPage(
    sidebarLayout(
      sidebarPanel(
        actionButton("action_1", "Get 1"),
        actionButton("action_2", "Get 2"),
      ),
      mainPanel(
        textOutput("result")
      ),
    )
  )
  
  server <- function(input, output) {
    data <- eventReactive(input$action_1, 1)
    data <- eventReactive(input$action_2, 2)
    output$result <- renderText(data())
  }
  
  shinyApp(ui, server)
}
Run Code Online (Sandbox Code Playgroud)

Sté*_*ent 5

这段代码的第二行覆盖第一行:

data <- eventReactive(input$action_1, 1)
data <- eventReactive(input$action_2, 2)
Run Code Online (Sandbox Code Playgroud)

你可以做:

  ui <- fluidPage(
    sidebarLayout(
      sidebarPanel(
        actionButton("action_1", "Get 1"),
        actionButton("action_2", "Get 2"),
      ),
      mainPanel(
        textOutput("result")
      ),
    )
  )
  
  server <- function(input, output) {
    result <- reactiveVal()
    observeEvent(input$action_1, { result(1) })
    observeEvent(input$action_2, { result(2) })
    output$result <- renderText(result())
  }
  
  shinyApp(ui, server)
}
Run Code Online (Sandbox Code Playgroud)