【问题标题】:Conditional reactive/eventReactive条件反应式/eventReactive
【发布时间】:2018-06-25 09:50:39
【问题描述】:

我想在闪亮的应用程序中添加一个复选框 (input$autorefresh) 以控制我的数据输入在每次更改时自动更新 (=reactive()) 的位置,或者是否仅在按钮时更新 (=@ 987654323@) 被推送。下面的代码描述了这个想法,但是我没想到它会起作用。我可以将reactive() 与条件isolate() 一起使用,但由于我有很多输入,这不是很优雅。有什么想法吗?

if (input$autorefresh==TRUE){
    dataInput <- reactive({
      dosomething    
    })
} else {
    dataInput <- eventReactive(input$refresh,{
      dosomething
    })
}

【问题讨论】:

    标签: shiny


    【解决方案1】:

    你在寻找这样的东西吗?

    library(shiny)
    
    ui <- fluidPage(
      checkboxInput("autorefresh","autorefresh", F),
      actionButton("refresh","refresh"),
      mainPanel(plotOutput("plot"))
    )
    
    autoInvalidate <- reactiveTimer(1000)
    
    server <- function(input, output, session) {
    
      data <- reactive({
        input$refresh
        data <- plot(rnorm(100),type="l",col="red")
    
        if(input$autorefresh){
          autoInvalidate()
          return(data)
        }
        return(data)
      })
    
      output$plot <- renderPlot({
        data()
      })
    }
    
    runApp(shinyApp(ui = ui, server = server))
    

    【讨论】:

    • 很好的例子,但是,我不是在寻找计时器,而是我想在响应式(当任何输入更改时更新)和事件响应式(仅在特定输入上更新)之间切换。
    猜你喜欢
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 2022-11-05
    • 1970-01-01
    • 2018-08-01
    • 2020-05-01
    相关资源
    最近更新 更多