我发现了Shiny中bookmarkButton()
的一个重大缺陷。如果您有任何文本输入并且未在其中输入任何内容,那么当您为应用程序的状态添加书签并将其恢复时,它会给您一个错误:
Error in RestoreContext initialization: Failed to parse URL parameter "txt"
这是因为bookmarkButton()
创建的网址始终具有%22
之间的文本输入值。如果没有输入,则网址如下...TextInputID=%22%22
。如果您在文字输入中输入内容,则网址将类似于...TextInputID=%22foo%22
。
请参阅此示例应用以重现此错误。有没有解决的办法?也许是一种方法来进入并编辑bookmarkButton()
生成的URL?
ui <- function(request) {
fluidPage(
textInput("txt", "Enter text"),
checkboxInput("caps", "Capitalize"),
verbatimTextOutput("out"),br(),
sliderInput("slider", 'Choose a number:', 1, 100, 20),
verbatimTextOutput("sliderOut"),
bookmarkButton()
)
}
server <- function(input, output, session) {
output$out <- renderText({
if (input$caps)
toupper(input$txt)
else
input$txt
})
output$sliderOut <- renderText({
input$slider
})
}
shinyApp(ui, server, enableBookmarking = "url")