首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条件反应式/事件反应式

条件反应式/事件反应式
EN

Stack Overflow用户
提问于 2018-06-25 17:50:40
回答 1查看 778关注 0票数 1

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

代码语言:javascript
复制
if (input$autorefresh==TRUE){
    dataInput <- reactive({
      dosomething    
    })
} else {
    dataInput <- eventReactive(input$refresh,{
      dosomething
    })
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-25 18:07:58

你在找这样的东西吗?

代码语言:javascript
复制
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))

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51020614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档