在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)
}
答案 0 :(得分:4)
这段代码的第二行覆盖了第一行:
data <- eventReactive(input$action_1, 1)
data <- eventReactive(input$action_2, 2)
您可以这样做:
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)
}
答案 1 :(得分:0)