我正在尝试使用传单以闪亮的方式绘制地图,但我不断收到我不明白的错误。下面是一个最小的可重现示例。预先感谢您的帮助
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)
几点
renderLeaflet()
调用中的最后一条语句是返回的内容。所以,如果你有一个 print
语句,这就是返回的内容,而不是传单对象shinyUI()
和 shinyServer()
围绕您的 UI 和服务器功能height
是一个很难正确理解的论点 - 请参阅此线程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);