#r #shiny #shinyapps
Вопрос:
У меня есть блестящее приложение с 4 вкладками, каждая из которых позволяет конечному пользователю выбрать что-то из таблицы. В принципе, я хочу, чтобы конечный пользователь просматривал каждую из вкладок, но всякий раз, когда они выбирают 1-ю вкладку, я хочу, чтобы приложение сбросилось (что эквивалентно нажатию F5).
У меня есть следующий код:
ui = fluidPage(theme = shinytheme("flatly"),
helpText("Model: "),
textOutput("selectedmodel"),
helpText("issue: "),
textOutput("selectissue")
tabsetPanel(id="tabs",
tabPanel(value="modelselection","Model Selection", fluid=TRUE,
sidebarLayout(
sidebarPanel(tags$a("Select a row", href=("Additional Text"))),
mainPanel(
DT::dataTableOutput('modelselectiontable')
))),
tabPanel(value = "issue"...
И я продолжаю создавать вкладки в пользовательском интерфейсе. Затем в разделе сервер:
server = function(input, output, session) {
observeEvent(input$tabs, {
if(input$tabs == "modelselection"){
session$reload()
print("Model TAB Selected")
output$selectissue<-renderText("")
}
session$reload()
Он действительно блестит, но делает это постоянно.
Есть ли способ разрешить session$reload()
загрузку только один раз, когда активирована первая вкладка? Или есть способ обновить только при нажатии на первую вкладку?
Спасибо за помощь, я впервые работаю в shiny, поэтому буду признателен за любую помощь.
Комментарии:
1. Вы пробовали дать свой конкретный идентификатор
tabPanel
?tabPanel (id="myid" , ....)
Затем вы можете ввести это удостоверениеobserveEvent(input$myid,....)
личности . Я не уверен, решит ли это проблему, но попробовать стоит.2. @maydin Простое решение, которое, казалось, сработало. Спасибо
3. Если это решит проблему, я добавлю это в качестве ответа, чтобы закрыть вопрос?