Shiny 条件反应性/事件反应性

Shiny 条件反应性/事件反应性,shiny,Shiny,我想在我闪亮的应用程序中添加一个复选框(input$autorefresh),以控制每次更改时数据输入自动更新的位置(reactive()),或者是否仅在按下按钮(input$refresh)时更新。下面的代码描述了这个想法,但是我没想到它会起作用。我可以将reactive()与条件隔离()一起使用,但由于我有许多输入,这不是很优雅。有什么想法吗 if (input$autorefresh==TRUE){ dataInput <- reactive({ dosometh

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

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

dataInput您正在寻找类似的东西吗

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))
库(闪亮)

ui是一个很好的例子,但是,我不是在寻找一个计时器,而是想在一个反应式和一个事件反应式之间切换,前者在任何输入发生变化时更新,后者只在特定的输入上更新。