I want to update my materialSwitch inside shiny module with observeEvent, event is triggered but updateMaterialSwitch doesn`t change input value. My code snippet:
# app server
app_server <- function(input, output, session) {
r <- reactiveValues()
observe(r$is_load <- is_load()) # basic reactive true/false - switching according to condition
callModule(mod_1_server, "1", r = r)
}
# mod_1_server
mod_1_server <- function(input, output, session, r) {
output$switch_uncumulate_tagvals <- renderUI({
materialSwitch(
inputId = "uncumulate_tagvals",
label = "label",
value = FALSE,
status = "warning"
)
})
observeEvent(req(r$is_load() == TRUE), {
updateMaterialSwitch(session = session,
inputId = "uncumulate_tagvals",
value = TRUE)
})
observeEvent(req(r$is_load() == FALSE), {
updateMaterialSwitch(session = session,
inputId = "uncumulate_tagvals",
value = FALSE)
})
}
When observeEvents are in app_server, everything is working. When I move them to mod_1_server, events are triggered but expected value of input$uncumulate_tagvals (my inputId) is never changed. My guess is that problem could be with session, but I don`t know how to solve it. Any suggestions?