如果我有一个闪亮的应用程序并且我有一个DT数据表,它将最终创建非常长的URL书签,我有兴趣使用setBookmarkExclude尝试删除它
有几个字段非常长,例如table_row_last_clicked
table_rows_selected
table_cell_all
,这使得网址过长!排除像slider1这样的简单事情
ui = function(request) {
fluidPage(
titlePanel('test bookmarks'),
sliderInput('slider1', 'Slider 1', 1, 100, 50),
sliderInput('slider2', 'Slider 2', 1, 100, 50),
DT::dataTableOutput('table')
)
}
server = function(input, output, session) {
setBookmarkExclude('table')
setBookmarkExclude('slider1')
output$table = DT::renderDataTable({
data.frame(a = 1:10, b = 11:20)
})
observeEvent(input$table_rows_selected, {
session$doBookmark()
})
onBookmarked(function(url) {
updateQueryString(url)
})
}
shinyApp(ui, server, enableBookmarking = 'url')
答案 0 :(得分:1)
有几件事:
您只能拨打setBookmarkExclude
一次,您应该将所有输入的名称作为字符向量传递出去。
DT将始终将这些存储为输入,因此您可以先验地知道它们的名称。为什么不这样做:
setBookmarkExclude(c('slider1', "table_rows_current", "table_cell_clicked",
"table_search", "table_rows_selected", "table_rows_all", "table_state"))