У меня есть блестящее приложение (связанное как часть пакета), в котором в начале серверной функции я создаю кучу реактивных фреймов данных, которые позже используются в других частях приложения.
Поскольку было создано довольно много фреймов данных, я хотел создать простую функцию setup_data()
, которую можно было бы вызывать в начале, чтобы обеспечить чистоту кода приложения. Однако, поскольку dfs создаются внутри функции, мне нужно использовать либо <<-
, либо assign
, чтобы убедиться, что они доступны в серверной среде Shiny.
library(shiny)
setup_data <- function(){
reactiveDat1 <<- shiny::reactiveValues()
reactiveDat1$mydf <<- data.frame(x = 1, y = 2)
reactiveDat2 <<- shiny::reactiveValues()
reactiveDat2$mydf <<- data.frame(x = 5, y = 10)
}
ui <- fluidPage(
titlePanel(""),
sidebarLayout(
sidebarPanel(
),
mainPanel(
)
)
)
server <- function(input, output) {
setup_data()
# rest of app goes here....
}
# Run the application
shinyApp(ui = ui, server = server)
При таком способе создается примечание крана no visible binding for '<<-' assignment
, и в общем случае делать глобальные присвоения в пакете крана - это плохая практика.
Поэтому есть способ, которым я могу создать функцию, которая выполняет настройку, подобную этой, но в некотором роде способствуют блестящие и краны пакетов? В идеале я бы хотел не возвращать все в list
, и я не нашел способа сделать эту работу в платформе Shiny Modules, так как нет соответствующего пользовательского интерфейса для t ie этим.
Есть ли другие варианты?