Отображать вывод только при выполнении условий условной панели - PullRequest
0 голосов
/ 15 сентября 2018

Я пишу блестящее приложение, которое будет развернуто для разных пользователей с разрешением экрана от 720p до 1080p.Приложение будет развернуто в Интернете.

Моя страница имеет простую боковую панель и область основного контента.Чтобы отрегулировать ширину боковой панели (чтобы содержать все содержимое без прокрутки), я использовал два conditionalPanels в своем UI.r, которые отображают соответствующие пользовательские интерфейсы 1080p или 720p, оценивая "screen.width > 1600" или "screen.width < 1600".

Это прекрасно работает, и соответствующие интерфейсы отображаются так, как требуется.

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

Есть ли способ отключить вывод, который не отображается?Я изучал использование глобальных переменных, так как ширина экрана никогда не изменится во время сеанса, но у меня возникли проблемы с блестящим и оценкой выражения "screen.width" - кажется, он возвращает NULL где угодно, но внутри conditionalPanel

Спасибо

1 Ответ

0 голосов
/ 16 сентября 2018

Без минимального воспроизводимого примера найти решение сложно.Но req или validate и need могут быть тем, что вы хотите.

req используется для проверки существования значений до выполнения: req документации .

validate и need могут использоваться вместе очень похожим образом: проверка документации .

Например, вы можете попробовать:

output$my_1080_plot = renderPlot(
    validate(need(screen.width > 1600, message = FALSE))
    # other commands to make plot
)

Если логическое условие не выполняется, оценка прекращается, а другая команда не выполняется.

...