首页 > 解决方案 > 动态生成的 tabItems

问题描述

现在我正在使用uiOutputwithrenderUI来显示我的内容。但我想使用 Google Analytics,所以我必须使用它tabItems来跟踪我的应用程序的页面。但这对我不起作用。

我的代码的简单示例:

UI <- dashboardPagePlus(
  header = dashboardHeaderPlus(...),
  sidebar = dashboardSidebar(
    ...,
    sidebarMenu(
      menuItemOutput(
        outputId = 'EventsMenu'
      ),
      ...
    ),
  body = dashboardBody(
    ...,
    uiOutput(
      outputID = 'EventsBody'
    ),
    ...
  )
)

Server <- function(
  input,
  output
) {
  output$EventsMenu <- renderMenu(
    {
      lapply(
        X = 1:10,
        FUN = function(
          ID
        ) {
          menuItem(
            text = 'Event',
            tabName = paste0(
              'Event',
              ID
            )
          )
        }
      )
    }
  )
  ...
  output$EventsBody <- renderUI(
    {
      if(
        stri_detect(
          str = 'Event'
        )
      ) {
        fluidPage(
          fluidRow(
            ...
          )
        )
      }
    }
  )
  ...
}

shinyApp(
 ui = UI,
 server = Server
)

我怎样才能更改我的使用代码tabItems

标签: rshinyshinydashboard

解决方案


只需处理它shiny.router 所以我的菜单项如下所示:

menuItem(
    text = "Homepage",
    href = route_link(
        path = "Home"
    ),
    newtab = FALSE
)

推荐阅读