library(shiny)
mod1UI <- function(id){
ns <- NS(id)
textInput(ns("txt"), "Enter Your Text", "Default")
}
mod1 <- function(input, output, session){
exp1 <- reactive({
h2(paste(input$txt, "exp1"))
})
exp2 <- reactive({
h2(paste(input$txt, "exp2"))
})
return(list(exp1, exp2))
}
mod2UI <- function(id){
ns <- NS(id)
tagList(
uiOutput(ns("txtOut"))
)
}
mod2 <- function(input, output, session, mod1Result){
output$txtOut <- renderUI(
tagList(
mod1Result$exp1(),
mod1Result$exp2()
)
)
}
ui <- fluidPage(
fluidRow(
column(12,
tagList(
mod1UI("myMod1"),
mod2UI("myMod2")
)
)
)
)
server <- function(input, output) {
mod1Result <- callModule(mod1, "myMod1")
callModule(mod2, "myMod2", mod1Result)
}
shinyApp(ui = ui, server = server)