Мне интересно, можно ли позволить моим пользователям включать и выключать определенные модули в моем приложении.
Каждый из моих модулей функционально содержит один анализ и технически построен с использованием серверной и пользовательской функций.
Я бы хотел, чтобы пользователь выбрал те модули / анализы, которые он или она хотели бы просмотреть.
Я пытался (для тестирования) поместить их в оператор if else, который прослушивает вход выбора.
Наиболее распространенный пример такого приложения:
ui <- dashboardPage(
dashboardHeader(title = NULL),
dashboardSidebar(
width = '100%',
disable = TRUE
),
dashboardBody(
fluidRow(
box(
title = "Modular modules", width = NULL, background = "blue",
h5(
paste('Version: ', packageVersion("modular modules"))
)
)
)
fluidRow(
pickerInput(inputId = 'select_modules',
label = 'Moules',
choices = c('Mod1', 'Mod2'),
selected = NULL,
multiple = FALSE)
),
uiOutput('modulesUI'))
)
server <- function(input, output, session) {
observeEvent(input$select_modules,{
output$modulesUI <- renderUI(
if(input$select_modules == 'mod1'){
fluidRow(
mod1_UI(id = 'mod1')
)
} else if(input$select_modules == 'mod2'){
fluidRow(
mod2_UI(id = "mod2")
)
}
)
})
observeEvent(input$select_modules,{
if(input$select_modules == 'mod1'){
callModule(mod1,
id = 'mod1',
...
)
} else if(input$select_modules == 'mod2'){
callModule(mod2,
id = "mod2",
...
)
}
})
Мои решения не работают.Можно ли это сделать?А если может, то как?