繁体   English   中英

在 R/shiny 中使用 renderTmap 时的反应性问题

[英]Reactivity problem while using renderTmap within R/shiny

我正在尝试将 tmap 集成到闪亮的应用程序中,但这样做时遇到了反应性问题。 我收到一个错误,暗示函数 renderTmap() 不会创建反应环境(而“经典” renderXXX() 函数会创建)。

这是我收到的错误消息:

.getReactiveEnvironment()$currentContext() 中的错误:在没有活动反应上下文的情况下不允许操作。 (你试图做一些只能从反应式表达式或观察者内部完成的事情。)

因此,我还没有设法创建一个考虑到输入值的地图......

这是我正在尝试做的一个简单示例(仅当我不根据输入值更新data_map时才有效!)

library(shiny)
library(sf)
library(tmap)

nc=st_read(system.file("shape/nc.shp", package="sf"))
# Define UI for application that draws a histogram
ui=fluidPage(
  selectInput("name",
              "name",
              unique(nc$NAME)),
  tmapOutput("map"))
)
server=function(input, output) {
  output$map <- renderTmap({
    data_map <- subset(nc,NAME==input$name)
    tm_shape(data_map)+
      tm_borders()
  })
}

shinyApp(ui=ui,server=server)

有人对此问题有解释/解决方法吗?

PS:我真的很喜欢renderTmap而不是renderLeaflet:我正在尝试向迄今为止使用过tmap的学生教授shiny...

此问题已于 2020 年 7 月 16 日修复。 现在,您问题中的代码应该可以正常工作。

您现在需要使用软件包的开发版本:

remotes::install_github("mtennekes/tmaptools")
remotes::install_github("mtennekes/tmap")

https://github.com/mtennekes/tmap/issues/474了解更多信息。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM