r-使用shinymeta在模块之间通信时出现缩进问题



我有几个模块,其中一个模块的目标是收集所有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:

但是,替换

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社区上也被问及

Joe Cheng在GitHub 上解决的问题

最新更新