отображение TRUE, когда блестящие файлы разбиты на разные папки

У меня есть блестящее приложение, использующее пакетshinydashboard.

Сначала у меня были все файлы в виде 3-х файлов - global.R, server.R, ui.R.

По мере того, как файлы становились больше и беспорядочнее, я вынул коды для каждого меню и поместил их в отдельную папку. (разделение блестящих файлов - http://shiny.rstudio.com/articles/scoping.html)

все работает, но происходит что-то раздражающее - в нижней части пользовательского интерфейса меню, которое я разделил на отдельную папку, отображается «ИСТИНА».

Если все находится только в одном большом файле, оно не отображает TRUE.

кто-нибудь знает, почему это происходит?

функционально все то же самое.


person jae555    schedule 29.05.2015    source источник
comment
Я даже не получаю истинного дохода. Insted я получаю это сообщение об ошибке: ОШИБКА: невозможно принудить тип «закрытие» к вектору типа «символ»   -  person XerXes    schedule 15.10.2015


Ответы (1)


Что происходит, так это то, что source возвращает список с двумя вещами внутри: value, который является фактическим кодом R внутри, и visible, который указывает, был ли код возвращен видимым или невидимым. TRUE, которое вы видите, является отражением того факта, что код вернулся видимым образом.

Что вы хотите сделать, так это включить value из этого списка. Итак, вместо

source("file.R", local = TRUE)

Измените его на

source("file.R", local = TRUE)$value

Это должно исправить это

person DeanAttali    schedule 29.05.2015
comment
спасибо, где я могу найти больше документации о таких вещах? - person jae555; 01.06.2015
comment
Я только что понял это из ручной отладки. Я не был уверен, почему возвращается TRUE, поэтому я присвоил source(...) переменной и посмотрел, что эта переменная содержит внутри себя. Я заметил, что в нем есть эти два элемента. Затем я прочитал, что означает возвращаемое значение visible, а затем попытался изменить его на FALSE и увидел, что теперь действительно печатается FALSE, поэтому я попытался явно использовать value, и это сработало. - person DeanAttali; 01.06.2015
comment
Спасибо @daattali! (Это ошибка или нормальное поведение? Я видел, что вы оставили комментарий к статье об обзоре rstudio, отлично) - person popo; 07.08.2015
comment
Я полагаю, это нормальное поведение - person DeanAttali; 07.08.2015