r - 粘贴网址未返回所需的选项卡
问题描述
下面的应用程序正在根据 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)
解决方案
推荐阅读
- android - 如何通过styles.xml改变MaterialButton的背景颜色
- json - 将 json 注解转换为 coco 格式
- android - 将 Firebase BOM 版本从 26.1.1 升级到 26.3.0 会增加 Android 中的应用启动时间吗?
- javascript - 如何在 JavaScript Cypress 测试中重构承诺?
- curl - 我可以强制 CURL 以 UTF-8 显示/保存收到的内容吗?
- math - 如何实现大幂运算?(例如在 RSA 中)
- react-native - 对于 react-native 而不是 ... react-native-video 有什么好的视频播放器吗
- java - 带有android的Opencv的CameraBridgeViewBase正在拍摄黑色照片
- c++ - std::ofstream: 可以打开文件但不能追加
- entity-framework - 实体框架获取集合计数而不是整个集合