материал.
Есть 3 файла :
main - каркас приложения
table - 1 вкладка боковой панели, где есть элементы загрузки файла(таблицы) и операции над ним, и кнопка сохранить результат.
dashboard - 2 вкладка(тут хотел построить график сохранённой таблицы из вкладки table)
Запуск происходит с main подтягивая данные через source()
Но столкнулся с проблемой, в окружении dashboard не видет отредактированный df из table.
У меня пока только одна идея, вернуть df из table→main и аргументом через сервер передать main→dashboard но это похоже на костыль
Как быть в этой ситуации ?
Может я с логикой в файлах намудрил, и загрузку \ обработку нужно было делать в main ?
Вообще в shiny вроде должны быть по умолчанию файлы ui, server или один app, где есть server и ui внутри , не очень понимаю в этой логике к чему относится main
Main - это шкаф, а table, dashboard - полки (образно говоря) Прикрепил код с main
На всякий случай, можно ещё делать global.R файл, объекты которого будут доступны и ui.R, и server.R
dashboar должен быть без d, это корректно обрабатывается?
Не, это моя опечатка
Если сделать global файл и так же через source подгружать в main будет такая же картина как и с файлом table. На сколько я понял source подгружает объекты при старте приложения, и не обновляет их. А файл я загружаю когда приложение запущено
Его не надо подгружать через source, насколько я помню.
И вообще не очень понятно, что именно у вас происходит, потому что мы видим только обрезанный файл, код ваших функций из двух других файлов не видим. То есть сейчас совершенно не понятно, что именно происходит по факту и какое ожидаемое поведение в этом случае
У вас нет присвоенных значений в окружении output, возьмите какой-нибудь простой пример и попробуйте от него оттолкнуться без подгрузки скриптов через source
Они находяться в table Скорее всего это не стандартный подход. Я прикреплю файлы
Вы уверены что для такого небольшого приложение нужны модули?
Я решил практиковать сразу с них. Если в дальнейшем нужно будет масштабировать всё равно прийдётся переходить на них. Да и с данным подходом, когда каждая страница в отдельном файле легко удалить / добавить новые страницы.
Я наверное не готов дебажить код , а только так можно понять, что там происходит и какова задумка автора, но имейте ввиду, что переменная одного модуля не будет доступна окружению другого и также глобальному окружению
Что бы она была доступна, её нужно вернуть, присвоить и передать. В общем тот костыль о котором писал )
чтобы такая переменная была доступна ее нужно передать явным образом через параметры функций-модуля, что не всегда удобно поэтому я лично делал общее окружение как потомок к глобальному и через него перекидывал параметры, но вообще я считаю такие упражнения неким продвинутым пониманием shiny и я бы не рекомендовал начинать изучение и практику с этого ... хотя конечно каждому свое ))) лично мне психологически важен quick win
я лично делал общее окружение как потомок к глобальному и через него перекидывал параметры - может у вас есть под руками пример как это делать ?
Обсуждают сегодня