Перезагрузите приложение Shiny при использовании исходных модулей без перезапуска - PullRequest
0 голосов
/ 04 мая 2018

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

Проблема в том, что когда я делаю изменения в серверной части исходных файлов (events.R в приведенном ниже примере, функция eventsTabItems ()), мне приходится останавливаться и запускать App i R-Studio вместо просто нажмите F5 в браузере.

Есть ли способ обойти это? Должен ли я обернуть все реактивной функцией?

Пример кода:

ui.R

source("./sections/events.R")
eventsTabItemsUI(id = "events")

server.R

source("./sections/events.R")
callModule(eventsTabItems, id = "events")

events.R

eventsTabItemsUI <- function(id) { 
  ns <- NS(id)
  tabItem(ns(example))
} 
eventsTabItems <- function(input, output, session) {
  output@example <- ...
}

1 Ответ

0 голосов
/ 19 июня 2019

Я считаю, что остановка сервера перед его повторным запуском (с помощью кнопки «Запустить приложение») необходима при редактировании модуля. Если в своем собственном файле .js (в папке www /), который вы отредактировали, есть код javascript, возможно, вам придется принудительно обновить браузер, чтобы он перезагрузил отредактированный код.

Этот ответ все еще экспериментальный, поэтому я, возможно, что-то упустил. Всякий раз, когда я ДЕЙСТВИТЕЛЬНО хочу убедиться, что редактирование не нарушило мой код, я делаю небольшие изменения в строках моей программы и наблюдаю, как они отображаются в графическом интерфейсе, чтобы я действительно запустил текущую версию кода.


Я больше не делаю этого:

Вы можете настроить свой пакет на принудительное удаление ваших функций.

suppressWarnings(rm("eventsTabItemsUI","eventsTabItems"))
...