在模块中使用 addPopover

Using addPopover in modules

我正在尝试使用 shinyBS 中的 addPopover,但我无法在模块中使用它。工具提示在模块中工作正常,但弹出框不显示。此外,工具提示和弹出框在直接放置在主要 server 部分时都可以正常工作。在 R 3.6.1 和 RStudio 1.2.1568 上使用 shiny_1.3.2shinyBS_0.61 进行测试。

library(shiny)
library(shinyBS)

counterButton <- function(id, label = "Counter") {
  ns <- NS(id)
  tagList(
     actionButton(ns("button"), label = label),
     bsTooltip(id = ns("button"), title = "Info about the button"),
     verbatimTextOutput(ns("out"))
  )
}

counter <- function(input, output, session) {

  count <- reactiveVal(0)
  observeEvent(input$button, {
    count(count() + 1)
  })

  output$out <- renderText({
    count()
  })

  addPopover(session, 
             id = "out", 
             title = "Info", 
             content = "More info about the counter field", 
             trigger = "hover")
  count
}

ui <- fluidPage(
  counterButton("counter1", "Counter #1")
)

server <- function(input, output, session) {
  callModule(counter, "counter1")
}

shinyApp(ui, server)

您必须使用 session$ns:

counter <- function(input, output, session) {

  ns <- session$ns

  count <- reactiveVal(0)
  observeEvent(input$button, {
    count(count() + 1)
  })

  output$out <- renderText({
    count()
  })

  addPopover(session, 
             id = ns("out"), 
             title = "Info", 
             content = "More info about the counter field", 
             trigger = "hover")
  #count # what's that?
}