Блестящие виджеты :: verticalTabPanel () не работает с модулями Shiny - PullRequest
0 голосов
/ 13 апреля 2020

Приложение ниже содержит модуль, который визуализирует вертикальную панель вкладок в пользовательском интерфейсе. Я вызываю этот модуль дважды в приложении.

Первый экземпляр модуля отображается правильно:

enter image description here

Однако второй экземпляр - нет (содержимое вкладок больше не отображается):

enter image description here

Если вы посмотрите инспектора, вы увидите, что для первого экземпляра зависимости HTML добавляются к tabset:

![enter image description here

Однако эти зависимости отсутствуют для второго экземпляра:

enter image description here

Я предполагаю, что это связано с использованием singleton() в исходном коде для verticalTabsetPanel? Я не знаю, как обойти это. Я попытался добавить зависимости в папку \www в каталоге моего приложения, а затем вручную добавить их в заголовок моего приложения, но, похоже, это тоже не сработало, поэтому я не смог бы понять, почему это будет с благодарностью.

Вот код:

library(shiny)
library(shinyWidgets)
library(shinydashboard)

modui <- function(id) {

  ns <- NS(id)

  tagList(
    verticalTabsetPanel(
      id = ns('tabs'), 
      verticalTabPanel(ns('item1'), ns('item1 content')), 
      verticalTabPanel(ns('item2'), ns('item2 content'))
    )
  )

}


modserver = function(input, output, session) {

}


# HEADER ------------------------------------------------------------------


header <- dashboardHeader()


# SIDEBAR -----------------------------------------------------------------


sidebar <- dashboardSidebar(
  sidebarMenu(
    menuItem("Tab 1", tabName = 'tab_1'), 
    menuItem("Tab 2", tabName = 'tab_2'))
)



# BODY --------------------------------------------------------------------


body <- dashboardBody(
  tags$head(
    tags$link(rel = "stylesheet", type = "text/css", href = "vertical-tab-panel.css"),
    tags$script(src='vertical-tab-panel.js'),
    tags$script(src='vertical-tab-panel-bindings.js')
  ),

  tabItems(
    tabItem(tabName = 'tab_1', modui('t1')),
    tabItem(tabName = 'tab_2', modui('t2'))  )
)



# UI ----------------------------------------------------------------------


ui = dashboardPage(header, sidebar, body)


shinyApp(
  ui = ui,
  server = function(input, output, session) {

    callModule(modserver, 't1')

    callModule(modserver, 't2')

  }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...