R 加载闪亮应用程序时强制更新输出

R 加载闪亮应用程序时强制更新输出,r,shiny,leaflet,shinydashboard,R,Shiny,Leaflet,Shinydashboard,我正在使用传单和shinydashboard创建有多个菜单的闪亮应用程序,这些菜单存在leaftletProxy问题 这里我创建了一个最小的示例来显示我的问题() 在应用程序中,有两个侧栏菜单1)第一个菜单有一个链接单击我;2) 第二份菜单上有一张单张图。在第一页中单击click me后,将启用第二页,然后将传单映射的setView设置为随机位置 问题是,当第一次单击单击我并调用代理时,js控制台出现错误消息找不到id为map的map 我认为这个问题与Shining应用程序加载时未初始化传单地图

我正在使用传单和shinydashboard创建有多个菜单的闪亮应用程序,这些菜单存在
leaftletProxy
问题

这里我创建了一个最小的示例来显示我的问题()

在应用程序中,有两个侧栏菜单1)第一个菜单有一个链接
单击我
;2) 第二份菜单上有一张单张图。在第一页中单击
click me
后,将启用第二页,然后将传单映射的
setView
设置为随机位置

问题是,当第一次单击
单击我
并调用
代理时,js控制台出现错误消息
找不到id为map的map

我认为这个问题与Shining应用程序加载时未初始化传单地图有关。单击多次后,一切都按预期进行

所以我的问题是,当shiny应用程序加载时,如何强制shiny绘制传单地图


谢谢你的建议。

你应该在你的回答中加入一个
需要。例如:

need(input$button, "Click the button")
此处的文档:

或者,您可以在代理为
NULL
时返回:

if (is.null(proxy)) {
    return(NULL)
}

这里的问题是,创建传单映射的代码被挂起,而
output$map
被隐藏

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

outputOptions(output,"map",suspendWhenHidden=FALSE)
不幸的是,这似乎是错误的现在,但可以很快修复,它目前抛出了一个js错误()

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

output$summary <- renderPrint({
      leafletProxy('map') %>% setView(runif(1) * 30 +2, runif(1) * 30 + 2, 7)
      print(input$mydata)
      print(leafletProxy('map')$id)
    })
output$summary%setView(runif(1)*30+2,runif(1)*30+2,7)
打印(输入$mydata)
打印(传单代理('map')$id)
})

谢谢你的建议。你能举个完整的例子吗?