如何分配 reactiveValues() Shiny

How to assign reactiveValues() Shiny

我想在我闪亮的应用程序中使用 reactiveValues(),但我不知道该怎么做。

我有一个 actionButton 并且根据 actionButton 的状态,我想将 data.frame 分配给一些 reactiveValues 然后将由一些 observers.

我写的是这样的

server.R

myDataFrame <- reactiveValues()

observeEvent(input$myButton, {
    myDataFrame$forProcessing <- some.data.frame
})

observe({
    #do something with myDataFrame$forProcecessing
})

但是,那会崩溃。我猜是因为 myDataFrame 被创建为 "empty" 的类型,然后导致我的 observe() #do something... 崩溃?!

如何正确创建 reactiveValues 以便它仅在填充时触发 observer()

您必须使用已有的内容创建反应值。解决方案是在反应值中放置一个空数据框,并在观察中确保 data.frame 为空时不会发生任何事情。所以:

myDataFrame <- reactiveValues(forProcessing = data.frame())

和:

observe({
    if (nrow(myDataFrame$forProcessing) != 0) {
        #do something with myDataFrame$forProcecessing 
    }
})