Когда выбрана вкладка, как обновить все приложение (f5)?

#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. Если это решит проблему, я добавлю это в качестве ответа, чтобы закрыть вопрос?