2017-11-25 141 views
0

有沒有什麼辦法可以在啓用後撤消invalidateLater函數?invalidateLater - 閃亮

您會同意反應性並非一直需要,可能在某個小時後,當不再需要抓取數據時。任何建議?

它也被官方記錄爲「可以通過添加防止invalidateLater被運行的條件邏輯來阻止這個循環。」,但是我找不到任何示例來理解這個工作。

由於

回答

0

下面是關於如何使用「條件邏輯」,以防止從invalidateLater正在運行一個簡單的例子。

library(shiny) 

shinyApp(
    fluidPage(
    checkboxInput('count', 'count up'), 
    verbatimTextOutput('text') 
), 
    function(input, output, session){ 
    counter <- reactiveVal(0) 

    observe({ 
     if(!is.null(input$count)) 
     if(input$count){ 
      invalidateLater(500) 
      counter(isolate(counter())+1) 
     } 
    }) 

    output$text <- renderText({ 
     counter() 
    }) 
    } 
) 
+0

謝謝。我會試試看 –