【发布时间】:2015-08-01 10:14:51
【问题描述】:
我正在尝试重新创建 https://gist.github.com/wch/5436415/,但通过按钮添加图。我认为这需要我沿着这些线修改链接上的server.r 代码(图表名称相关变量是通过reactiveValues 创建的) -
observeEvent(
input$buttonAddData,
{
...
newchartname = c(newchartname,newchartname)
output[[newchartname]] = renderPlot({
...
})
}
)
output$plots = renderUI(
{
plot_output_list <- lapply(
seq(length(allthechartnames)),
function(i) {
plotname <- paste(
isolate(allthechartnames)[i]
)
plotOutput(plotname, height = 280, width = 250)
cat(plotname,'\n')
}
)
# Convert the list to a tagList - this is necessary for the list of items
# to display properly.
do.call(tagList, plot_output_list)
}
)
但这似乎没有进入在 observeEvent 中创建图表本身的原始循环,这导致 renderUI 块内没有图表。
有什么建议吗?
【问题讨论】:
-
你不应该在观察者内部调用渲染函数。相反,使用
reactiveValues并更改观察者中反应值的值,并将该值用作渲染函数中的依赖项 -
@daattali - 在上面的代码中,我尝试将一个元素添加到
reactivevalues(称为)的列表中,并将在 observe中创建的图表分配给它。我不确定如何在渲染位中替换它。我做不到plotname = <listofreactivevalues>$<chartname>。 -
如果您可以提供工作代码而不是 sn-ps,可能更容易帮助理解问题/解决方案
-
我正在尝试按照这些思路做一些事情 = gist.github.com/wch/5436415 但不是定义的滑块,我想要一个生成随机数据并为每个随机数据生成添加图的按钮。这有帮助吗?如果没有,请告诉我,我将编写我的代码版本并将其发布在问题上。