如何分配reactiveValues()闪亮

时间:2015-09-28 11:10:12

标签: r shiny reactive-programming

我想在我的闪亮应用中使用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被创建为“空”,然后导致observe() #do something...崩溃?!

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

1 个答案:

答案 0 :(得分:2)

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

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

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