Я работаю над блестящим приложением.Мне нужно, чтобы пользователь ввел файл, и затем из этого файла получается таблица.
Мне нужна одна кнопка, которая делает это:
, есливходное значение равно нулю, ничего
если входное значение не равно нулю, сгенерируйте таблицу и отобразите ее
, если таблица уже отображается, скрытьэто.
Я попытался поставить вывод таблицы как hidden
и переключать его при нажатии кнопки.Это работает, но когда я снова нажимаю кнопку, чтобы скрыть таблицу, таблица перезагружается.
У меня есть это в моем пользовательском интерфейсе:
actionButton(inputId = "viewFile", label = "View file"),
hidden(tableOutput("fileTable"))
И вот что я попробовална моем сервере:
observeEvent(input$viewFile,{
output$fileTable <- renderTable({...)}) #generating the table
toggle("fileTable")
})
Как вы можете понять, когда нажимается кнопка viewFile
, вывод fileTable
отображается, а затем переключается (это не скрыто больше так показывается).Для генерации результата в первый раз, это идеально.
Однако, если я снова нажму на кнопку, чтобы скрыть таблицу, renderTable
вычисляется снова.Это бесполезная операция (вы не хотите генерировать вывод таблицы только для того, чтобы скрыть ее).
Есть ли способ сохранить работу переключателя, но предотвратить регенерацию tableOutput?Я думал об использовании if
на выходе, но вы не можете оценить выходные элементы с сервера.
(Warning: Error in $.shinyoutput: Reading objects from shinyoutput object not allowed.
)
Еще одна деталь: позже я попытаюсь улучшить свое приложение, заново сгенерировав вывод таблицы, если файл изменился, есть ли способсделать это тоже?
Спасибо и извините за вопрос новичка.Я немного потерян.Если у вас есть какие-либо вопросы относительно моего кода, пожалуйста, не стесняйтесь.