在 Shiny/R 中,为什么我的 lis 和 purrr::map()t 在模块中不起作用?

In Shiny/R why my lis with purrr::map()t is not working in module?

提问人:JohnBones JohnBones 提问时间:12/7/2022 更新时间:12/7/2022 访问量:43

问:

这是我的模块文件:

library(semantic.dashboard)

example_UI <- function(id) {
  ns <- NS(id)
  tagList(

    # 1:5 %>% map(~ list(menu = list(paste0(.x)),
    #                    content =list(paste0(.x))))

      list(menu = list('B'),
                content = list('B')),
    list(menu = list('C'),
         content = list('C')),
    list(menu = list('A'),
         content = list('A')),
    list(menu = list('A'),
         content = list('A')),
    list(menu = list('A'),
         content = list('A'))

  )
}

example_Server <- function(id) {
  moduleServer(
    id,
    function(input, output, session) {

    }
  )
}

当我在不使用 purrr::map() 函数的情况下运行代码时,面板标签创建得很好。

但是当我尝试使用 purrr::map() 函数创建面板标签时,它没有被创建

波纹管是我闪亮的应用程序

ui <- dashboardPage(
  dashboardHeader(color = "blue"),
  dashboardSidebar(side = "left", size = "thin", color = "teal",
                   sidebarMenu(
                     menuItem(tabName = "tab1", "Tab 1"))),
  dashboardBody(tabItems(

    tabItem(tabName = "tab1",

            tabBox(
              collapsible = FALSE,
              title = "Pull",
              color = "black",
              width = 16,

              tabs = example_UI('question')
              )

            )))
)

server <- function(input, output) {
}

shinyApp(ui, server)

我做错了什么?

R 亮闪 亮仪表板

评论


答:

2赞 MrFlick 12/7/2022 #1

您的函数返回长度为 5 的值。它不会像在没有映射的情况下调用时那样返回五个单独的列表。为了将该单个列表扩展到不同的参数,您可以使用 .例如map()list()tagList()!!!

tagList(
  !!!(1:5 %>% map(~ list(menu = list(paste0(.x)),
                     content =list(paste0(.x))))
))

评论

0赞 JohnBones JohnBones 12/7/2022
感谢您抽出宝贵时间接受采访!do.call解决方案令人惊叹。这!!!我必须有更好的理解。再次感谢!