У меня есть несколько модулей, и цель одного из них - собрать все meta
выражения и поместить их в один verbatimTextOutput
. Прочитав эту статью о взаимодействии между модулями , я попытался адаптировать ее с помощью выражений shinymeta
, но у меня возникли некоторые проблемы с этим.
Вот пример:
library(shiny)
library(shinymeta)
small_mod_ui <- function(id){
ns <- NS(id)
selectInput(ns("test"), "test", choices = names(mtcars))
}
small_mod_server <- function(input, output, session){
return(
list(
test_reactive = metaReactive({
..(input$test)
}),
test_reactive_2 = metaReactive({
..(input$test)
})
)
)
}
code_mod_ui <- function(id){
ns <- NS(id)
verbatimTextOutput(ns("show_code"))
}
code_mod_server <- function(input, output, session, com_between_mods){
output$show_code <- renderPrint({
expandChain(
com_between_mods$test_reactive(),
com_between_mods$test_reactive_2()
)
})
}
ui <- fluidPage(
small_mod_ui("1"),
code_mod_ui("1")
)
server <- function(input, output, session) {
com_between_mods <- callModule(small_mod_server, "1")
callModule(code_mod_server, "1", com_between_mods = com_between_mods)
}
shinyApp(ui, server)
При выполнении этого примера возникает следующая ошибка:
Предупреждение: ошибка в:: 2: 2: неожиданный ввод 1: 1_test_reactive
<- "mpg" 2: 1_ ^ 134: </p>
Однако замена
return(
list(
test_reactive = metaReactive({
..(input$test)
}),
test_reactive_2 = metaReactive({
..(input$test)
})
)
)
на
return(list(test_reactive = metaReactive({ ..(input$test) }), test_reactive_2 = metaReactive({ ..(input$test) }) ))
(в одной строке), похоже, решает проблему.
Есть ли «условие отступа» в shinymeta
?
Также спрашивается в сообществе RStudio