Utilizando valor input de módulo 1 na UI de módulo 2
Estou trabalhando em um aplicativo Shiny usando o framework do pacote golem e estou enfrentando um desafio relacionado à comunicação entre módulos. Especificamente, tenho dois módulos: o módulo1 contém um botão que me permite escolher entre 3 opções de países, e o módulo2 é responsável por exibir elementos de interface do usuário com base no país selecionado no módulo 1.
Quero mostrar o código da UI do módulo 2 apenas quando o usuário selecionar o país ‘França’ na UI do módulo1.
Aqui está uma versão simplificada do meu código:
library(shiny)
library(golem)
library(shinyWidgets)
mod_module1_ui <- function(id){
ns <- NS(id)
tagList(
shiny::inputPanel(
shinyWidgets::awesomeRadio(
inputId = ns("id_country"),
label = 'Select the country:',
choices =c('Spain','France', 'England')
)
)
)
}
# Server modulo1
mod_module1_server <- function(id){
moduleServer( id, function(input, output, session){
ns <- session$ns
})
}
# User Interface modulo2
mod_module2_ui <- function(id){
ns <- NS(id)
tagList(
shinydashboard::box(
conditionalPanel(
# this is where I try to access the value of the input from 'module1'
condition = "input.module1_1-id_country == 'France'",
ns = ns,
numericInput(
inputId = ns("year"),
label = "Input Year:",
value = 2017,
)
)
)
)
}
# Server modulo2
mod_module2_server <- function(id){
moduleServer( id, function(input, output, session){
ns <- session$ns
# do something
})
}
# APP User Interface
app_ui <- function(request) {
tagList(
mod_module1_ui("module1_1"),
mod_module2_ui("module2_1")
)
}
shinyApp(app_ui,app_server)
Eu tentei a abordagem acima usando a linguagem JavaScript, mas estou tendo dificuldades para fazê-la funcionar dentro da estrutura Golem.
Alguém saberia me orientar sobre como passar efetivamente o valor do país selecionado do módulo1 para o módulo2 e exibir condicionalmente o elemento numericInput
com base na seleção do país?
Qualquer ajuda ou código de exemplo que demonstre a maneira correta de alcançar isso será muito apreciado!
Agradeço