Этот вопрос связан с комбинацией navbarMenus и пакета Shinyjs. Я создал блестящее приложение, а также добавил логин пользователя, следуя этому предложению: https://gist.github.com/withr/9001831.
Итак, я знаю, какой пользователь вошел в систему. Теперь я хотел бы показать и скрыть как целое navbarMenu, так и отдельные вкладки, в зависимости от того, какой пользователь вошел в систему. Допустим, есть два пользователя: «admin» и «custom». , а для «admin» должны отображаться все navbarMenus и все tabPanels, в то время как «custom» получает только navbarMenu 2 и в этом меню только tabPanel 22 для просмотра.
library(shiny)
library(shinyjs)
# Define UI
ui <-
fluidPage(
titlePanel("NAVBARPAGE"), # title
br(),
################### NAVBAR ############################
navbarPage(
"", # title
################### TABS THEMA #######################
hidden(div(id='m1',
navbarMenu("Menu1",
tabPanel('tab11',plotOutput('tab_11')),
tabPanel('tab12',uiOutput('tab_12'))))),
navbarMenu("Menu2",
tabPanel('tab21',uiOutput('tab_21')),
hidden(div(id='xxx',tabPanel('tab22',uiOutput('tab_22')))))
#######################################################
))
###### SERVER #####
server <- function(input, output,session) {
#Define user
user<-'admin'
observe({
if (user=='admin') {
show('xxx')
show('m1')
}
else {
hide('xxx')
hide(m1)
}
})
# Run the application
shinyApp(ui = ui, server = server)
В этом минимальном примере tabPanel ('tab22') скрыт, но не отображается, когда я определяю
user<-'custom'
Плюс странный внешний вид первого navbarMenu 'm1' - он на самом деле не скрыт, он только пустой. Кто-нибудь знает помогите?