我正在尝试使用shinyBS
中的addPopover
,但我无法让它在模块中工作。工具提示在模块中工作正常,但弹出框未显示。此外,工具提示和弹出框在直接放置在主server
部分中时都可以正常工作。在 R 3.6.1 和 RStudio 1.2.1568 上使用shiny_1.3.2
和shinyBS_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?
}