2016-02-26 33 views
1

我正在使用小冊子和shinydashboard創建具有多個菜單的閃亮應用程序,其中有leaftletProxy的問題。正在加載有光澤的應用程序時強制更新輸出

這裏我創建了最小的例子來顯示我的問題(https://gist.github.com/byzheng/074c3c1ff75ea9f951f5)。

在應用程序中,有兩個邊欄菜單1)第一個菜單有一個鏈接click me; 2)第二個菜單有一個小冊子地圖。在第一頁點擊click me後,第二頁啓用,然後setView單張圖隨機放置。

問題是,當第一次點擊click me並調用leafletProxy時,js控制檯有一個錯誤消息Couldn't find map with id map

我覺得這個問題與小冊子有關,當有光澤的應用程序加載時沒有初始化映射。點擊不止一次後,所有內容都按預期工作。

所以我的問題是如何強制閃亮繪製傳單地圖時閃亮的應用程序加載。

感謝您的任何建議。

回答

1

這裏的問題是,創造了單張地圖的代碼已被暫停隱藏output$map。要解決這個問題

的一種方法是使用:

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

不幸的是,這似乎是越野車,但現在很快就可以固定,但目前拋出一個JS錯誤(see here)。

由於output$summary似乎在renderLeaflet之後運行,因此您可以在該塊中使用setView作爲臨時解決方案。

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