Проблема с отступом при обмене данными между модулями с помощью shinymeta - PullRequest
0 голосов
/ 08 мая 2020

У меня есть несколько модулей, и цель одного из них - собрать все 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

1 Ответ

0 голосов
/ 22 мая 2020

Проблема решена Джо Ченгом на GitHub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...