Как реализовать динамическую загрузку / выгрузку модулей в R (при ожидании завершения одного модуля)? - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь преобразовать настольное приложение Shiny, использующее скрипт драйвера и несколько отдельных приложений, в серверное приложение, на котором выполняется основное приложение, при преобразовании каждого отдельного приложения в модули. Ранее код использовал runApp () и stopApp () для передачи информации между скриптом драйвера и частями, но я сталкиваюсь с трудностями, заставляя главный сервер ждать завершения вызываемого модуля, а также с загрузкой пользовательского интерфейса каждого модуля. только во время работы этого модуля.

Это на R 3.4.4, и я разрабатываю с использованием RStudio. Я пытался использовать задержку блестящей, но, похоже, это ничего не меняет.

server <- function(input, output, session){
source("module1.R")
source("module2.R")

insertUI(selector = "m1", ui = module1UI("mod1"))
val <- callModule(module1, "mod1")

#code reliant on val

stop <- FALSE
while(stop == FALSE){

removeUI(selector= "m1")
insertUI(selector = "m2", ui = module2UI("mod2"))
action <- callModule(module2, "mod2")

if(action == "end"){
 stop <- TRUE
}
#other stuff down here
}

Проблема здесь в том, что val равен нулю, потому что у меня не было возможности закончить взаимодействие с модулем 1, а сервер просто продолжает работать.

Я также не совсем уверен, что я правильно создаю пользовательский интерфейс (module1UI - это функция (id), возвращающая список тегов входов / выходов). Если я создаю module1UI ("mod1") на странице жидкости ui.R, он загружается, но, похоже, не работает вообще.

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