闪亮如何更新存储在反应中的值?

lau*_*kok 3 r shiny

我可以更新/更改反应中保留的值吗?例如,

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.
    }

})
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

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

zer*_*323 9

你想要的可能不是反应性表达而是反应值:

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

     output$test <- renderText({
         ...
         if(site1 == isolate(values$x)) {
             ...
         } else {
             ...
             values$x <- site1 
         }
     })
})
Run Code Online (Sandbox Code Playgroud)