首页 > 解决方案 > 粘贴网址未返回所需的选项卡

问题描述

下面的应用程序正在根据 DT 表中选择的行和选定的选项卡更新 url。但是会发生什么,当用户将 url 复制粘贴到另一个选项卡中时,它不会打开特定选项卡,而是打开默认页面(url: http: //127.0.0.1 :XXXX/?tabs=tabs2 )

library(shiny)
library(DT)

ui <- function(request) {
  shinyUI(navbarPage(
    "Title", id = "inTabset", selected = "Summary",
    tabsetPanel(id = "tabs",
                tabPanel(
                  "Readme",tags$head(tags$link(rel = "stylesheet", type="text/css", href="style.css"))
                ),
                tabPanel(
                  "Summary",
                  dataTableOutput("tab")))
  )
  )
}

server <- function(input, output, session) {
  # Make sure you only bookmark the tabsetPanel
  setBookmarkExclude(isolate(names(input)[names(input) != "tabs"]))
  
  # Every time the tab changes, store the app state as URL bookmark
  observeEvent(input$tabs, {
    session$doBookmark()
  })
  
  # Set callback that stores the app state in the URL
  onBookmarked(function(url) {
    updateQueryString(paste0("?tabs=", input$tabs), mode = "replace")
  })
  # Set callback to restore the app state from the URL
  onRestore(function(state) {
    updateTabsetPanel(inputId = "tabs", selected = getQueryString()[["tabs"]])
  })
  
  output$tab <- renderDataTable({
    datatable(iris,selection = 'single')
  })
  
  observeEvent(input$tab_rows_selected, {
    insertTab(inputId = "tabs",
              tabPanel(paste0("tabs",input$tab_rows_selected), "This a dynamically-added tab"),
              target = "Summary",select = TRUE
                
    )
  })
  

}


enableBookmarking("url")
shinyApp(ui, server)

标签: rshinybookmarks

解决方案


推荐阅读