我想在我的闪亮应用中使用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()
?
答案 0 :(得分:2)
您必须使用已存在的内容创建反应值。解决方案是在反应值中放置一个空数据框,并在观察时确保当data.frame为空时没有任何反应。所以:
myDataFrame <- reactiveValues(forProcessing = data.frame())
和
observe({
if (nrow(myDataFrame$forProcessing) != 0) {
#do something with myDataFrame$forProcecessing
}
})