сбросить R блестящий actionButton, чтобы использовать его более одного раза - PullRequest
0 голосов
/ 09 мая 2018

Кто-нибудь знает, как сделать actionButton (R блестящий) сбросить к начальному значению, чтобы использовать его более одного раза?

Ниже приведен воспроизводимый пример :

В этом примере я хотел бы изменить цвет диаграммы, выбрав соответствующую кнопку: моя проблема в том, что она не может перезагрузить диаграмму после одной итерации.

library(shiny)

ui <- fluidPage(

  actionButton(inputId = "button1",label = "Select red"),
  actionButton(inputId = "button2",label = "Select blue"),
  plotOutput("distPlot")

)


server <- function(input, output) {

   output$distPlot <- renderPlot({
      x    <- faithful[, 2] 
      bins <- seq(min(x), max(x))

      my_color <- "green"
      if (input$button1){my_color <- "red"}
      if (input$button2){my_color <- "blue"}

      hist(x, breaks = bins, col = my_color)
   })
}

shinyApp(ui = ui, server = server)

Заранее спасибо

1 Ответ

0 голосов
/ 09 мая 2018

Обычно не рекомендуется сбрасывать ActionButton в Shiny. Я бы посоветовал вам использовать ObserveEvent и сохранить цвет в реактивные значения.

library(shiny)

ui <- fluidPage(
  actionButton(inputId = "button1", label = "Select red"),
  actionButton(inputId = "button2", label = "Select blue"),
  plotOutput("distPlot")
)


server <- function(input, output) {
  r <- reactiveValues(my_color = "green")

  output$distPlot <- renderPlot({
    x <- faithful[, 2]
    bins <- seq(min(x), max(x))
    hist(x, breaks = bins, col = r$my_color)
  })

  observeEvent(input$button1, {
    r$my_color <- "red"
  })

  observeEvent(input$button2, {
    r$my_color <- "blue"
  })
}

shinyApp(ui = ui, server = server)
...