2015-07-19 63 views
2

我可以更新/更改保存在响应中的值吗?例如,闪亮如何更新存储在响应中的值?

x <- reactive({ 
    isolate(input$site1) 
}) 

# Inpsect values from ui.R. 
output$test <- renderText({ 

    # Take a dependency on input$goButton 
    input$goPlot # Re-run when button is clicked 

    site1 <- isolate(input$site1) 

    if(site1 == x()){ 
     site1 
    } else { 

     paste(x(), site1) 
     x() <- site1 // this not working obviously. 
    } 

}) 

任何想法?

我想这么做的原因是因为我想存储以前的输入数据input$site1当用户点击按钮input$goPlot时我想确保使用时再次点击按钮时选择不同的选项。如果他们选择相同的数据或不选择任何其他选项并点击按钮,那么我不希望应用程序执行任何操作。希望这是有道理的。

+0

你能否提供一些背景? – zero323

+0

请参阅我的更新。谢谢。 – laukok

+1

好吧,你的编辑很好地描述了被动依赖。如果依赖没有改变,那么没有理由改变输出。 – zero323

回答

6

你想要的是可能不是反应性的表达,但reactive values

shinyServer(function(input, output, session) { 
    values <- reactiveValues(x="someValue") 

    output$test <- renderText({ 
     ... 
     if(site1 == isolate(values$x)) { 
      ... 
     } else { 
      ... 
      values$x <- site1 
     } 
    }) 
})