Блестящий новичок: я хочу загрузить другой набор данных в зависимости от того, на какую кнопку действия нажимают. Поскольку обработка оттуда будет одинаковой для любого набора данных, я хочу сохранить их в одном и том же реактивном выражении, здесь dataset()
.
См. Мой код:
library(shiny)
ui <- shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
actionButton("gohere", "dataset1"),
actionButton("gothere", "dataset2")
),
mainPanel(
tableOutput("dataset")
),
)
)
)
server <- function(input, output) {
dataset <- eventReactive(input$gohere, {
mtcars
})
dataset <- eventReactive(input$gothere, {
cars
})
output$dataset <- renderTable({
dataset()
})
}
shinyApp(ui = ui, server = server)
I ожидайте, что этот код загрузит mtcars
в dataset
, когда нажата кнопка actionButton «gohere», и продолжите с renderTable
и загрузите cars
в набор данных, когда нажата кнопка actionButton «gothere», и продолжайте аналогично.
Однако: если я нажимаю кнопку actionButton "gothere", все работает должным образом, если я нажимаю "gohere", ничего не происходит. Если я изменю порядок «gohere» и «gothere» внутри функции server
, все будет наоборот.
Что делает второй eventReactive()
с dataset
, что полностью аннулирует первое eventReactive()
?
РЕДАКТИРОВАТЬ: И если он перезаписывает его, что он перезаписывает?