官方tutorial by RStudio对如何实际使用tagList()函数在Shiny模块中创建命名空间ID有点不清楚。 Shiny documentation也没有多大帮助。究竟我应该把它放在tagList()函数中?我应该只在tagList()中包装输入参数,如所有示例和视频教程中所示,或者我可以在其中放置其他元素,例如sidebarPanel()?
答案 0 :(得分:2)
tagList
只是创建一个标签列表。定义是
> tagList
function (...)
{
lst <- list(...)
class(lst) <- c("shiny.tag.list", "list")
return(lst)
}
这是一个包含特殊班级shiny.tag.list
的简单列表。您在创建模块时使用它,模块的UI需要返回一个简单的页面,如fluidPage
等。如果您不想为模块创建额外的UI,您只需返回包含在tagList
内的一些UI元素,并处理模块外部的UI。例如:
library(shiny)
moduleUI <- function(id){
ns <- NS(id)
# return a list of tags
tagList(h4("Select something"),
selectInput(ns("select"), "Select here", choices=1:10))
}
module <- function(input, output, session){}
ui <- shinyUI(
fluidPage(wellPanel(moduleUI("module"))) # wrap everything that comes from the moduleUI in a wellPanel
)
server <- shinyServer(function(input, output, session){
callModule(module, "module")
})
shinyApp(ui = ui, server = server)