首页 > 解决方案 > 无法在传单 R Shiny 中使用 renderText 显示来自 data.frame 的文本

问题描述

我有一个带点的数据框。我想通过单击标记显示列中的文本。假设我有下一个代码:

library(tidyverse)
library(leaflet)

df <- data.frame(X = c(30.45, 30.66), Y = c(24.14, 25.23), id = c(1, 2),
description = c("First point is here", "Second point is here"))

server <- function(input, output) {
  data_of_click <- reactiveValues(clickedMarker=NULL)

  output$map <- renderLeaflet({
    leaflet() %>% 
      addTiles(options = providerTileOptions(noWrap = TRUE)) %>%
      addCircleMarkers(data = df,
                       lng = ~ X, lat = ~ Y, radius = 3,
                       color = "black",  fillColor = "red", stroke = F, 
                       fillOpacity = 0.5,
                       layerId = df$id
      )
  })

  observeEvent(input$map_marker_click, {
    data_of_click$clickedMarker <- input$map_marker_click
  })

  output$text <- renderText({
    if (is.null(data_of_click$clickedMarker)) {
      return(NULL)
    }
    return(
      paste0(df$description, 
                 id == data_of_click$clickedMarker$id
      )
    )
  })
}

ui <- fluidPage(
  br(),
  column(8, leafletOutput("map", height = "600px")),
  column(4, br(), br(), br(), br(), textOutput("text")),
  br()
)

shinyApp(ui = ui, server = server)

我从之前的答案中改编了这一部分,我需要在点击时创建表格。现在我想根据 column 制作简单的打印文本description

标签: rshinyleaflet

解决方案


推荐阅读