У меня блестящее приложение с серверной функцией, например так;
shinyServer(function(input, output) {
chosen_fam <- reactive({ input$fam })
output$newui <- renderUI({ NewProductUI("newproduct", fam = chosen_fam()) })
output$newbtn <- renderUI({ NewProductButtonUI("newproduct", fam = chosen_fam()) })
callModule(NewProduct, id = "newproduct", fam = chosen_fam())
})
Внутри модуля NewProduct есть что-то вроде этого:
NewProduct <- function(input, output, session, fam){
observeEvent(input$submitnew, {
print(paste0("Adding.... ", fam))
row <- c(fam, input$variable)
upload_to_googlesheets(token, row)
})
Интерфейс отображается в зависимости отВыбранная семья и серверный модуль также делают разные вещи в зависимости от семьи.
Интерфейс рендеринга, кажется, работает нормально, но переменная "fam" в callModule
не обновляется (следовательно, это всегда результат первого выбранного семейства).Переменные из входных данных проходят нормально, поэтому я предполагаю, что это как-то связано с областью видимости (возможно, он ищет «fam» в пространстве имен «newproduct»?).
Как явно указать callModule
использовать реактивное выражение из пространства имен сеанса?Или есть способ, которым я могу просто добавить переменную fam в пространство имен "newproduct"?