我正在尝试使用传单绘制闪亮的地图,但我一直收到一个我不明白的错误。以下是最小可重复的示例。在此先感谢您的帮助
library(shiny)
library(leaflet)
ui = fluidPage("test", id="nav",
leafletOutput("map", width="100%", height="100%")
)
server <- function(input, output,session) {
output$map <- renderLeaflet({
print("Rendering leaflet map")
leaflet() %>% addProviderTiles("Esri.OceanBasemap") %>%
fitBounds(160, -30, 185, -50)
print("Finishing rendering leaflet map")
})
}
shinyApp(ui, server);
我把它打印到控制台:
[1] "Rendering leaflet map"
[1] "Finishing rendering leaflet map"
Warning: Error in $: $ operator is invalid for atomic vectors
Stack trace (innermost first):
80: origRenderFunc
79: output$map
4: <Anonymous>
3: do.call
2: print.shiny.appobj
1: <Promise>
当在闪亮的框架之外时,传单函数似乎有效,因此我有点困惑。
leaflet() %>% addProviderTiles("Esri.OceanBasemap") %>%
fitBounds(160, -30, 185, -50)
答案 0 :(得分:2)
几点
renderLeaflet()
调用中的最后一个语句是返回的内容。因此,如果您有一个print
语句,那就是返回的语句,而不是传单对象shinyUI()
和shinyServer()
包围您的UI和服务器功能height
是一个棘手的争论 - 请参阅此thread library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput(outputId = "map", width="100%")
)
server <- function(session, input, output) {
output$map <- renderLeaflet({
leaflet() %>% addProviderTiles("Esri.OceanBasemap") %>%
fitBounds(160, -30, 185, -50)
})
}
shinyApp(ui, server);