r - 当 Shiny 的应用程序加载时强制更新输出

标签 r shiny leaflet shinydashboard

我正在使用传单和shinydashboard创建 Shiny 的应用程序,该应用程序有多个菜单,这些菜单存在leafletProxy问题。

在这里,我创建了最小的示例来展示我的问题( https://gist.github.com/byzheng/074c3c1ff75ea9f951f5 )。

在应用程序中,有两个侧边栏菜单 1) 第一个菜单有一个链接 click me; 2)第二个菜单有传单图。在第一页点击click me后,启用第二页,然后setView传单 map 到随机位置。

问题是第一次点击click me时,js控制台出现错误消息Couldn't find map with id map并且leafletProxy 被调用。

我认为这个问题与加载 Shiny 应用程序时传单 map 未初始化有关。单击多次后,一切都按预期工作。

所以我的问题是如何在Shiny应用程序加载时强制Shiny绘制传单 map 。

感谢您的任何建议。

最佳答案

这里的问题是,当 output$map 隐藏时,创建传单 map 的代码被挂起。

解决此问题的一种方法是使用:

outputOptions(output,"map",suspendWhenHidden=FALSE)

不幸的是,这现在似乎有问题,但很快就能修复,它目前会抛出一个 js 错误( see here )。

由于 output$summary 似乎是在 renderLeaflet 之后运行,因此您可以在该 block 中使用 setView 作为临时解决方案。

output$summary <- renderPrint({
      leafletProxy('map') %>% setView(runif(1) * 30 +2, runif(1) * 30 + 2, 7)
      print(input$mydata)
      print(leafletProxy('map')$id)
    })

关于r - 当 Shiny 的应用程序加载时强制更新输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35653149/

相关文章:

css - Shiny - 更改文本(框)的大小、颜色和字体

r - 热图颜色在绘图中不起作用

javascript - leaflet-editable.js 和 mapbox.js

r - 在 R 中,如何获得一组数据的最佳拟合方程?

r - 使用 knit::purl 进行 block 引用

r - 按因子将比例列添加到数据框

html - 使用 xtable 和 type = html 如何将类添加到特定的 td 标签

javascript - 传单小 map 滚轮缩放禁用

javascript - 在传单弹出窗口中显示图像不起作用

r - R 中分数函数的数值爆炸问题