在模块中使用 addPopover
Using addPopover in modules
我正在尝试使用 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?
}
我正在尝试使用 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?
}