gpt4 book ai didi

r - Shiny -点击刷新后如何记住用户输入?

转载 作者:行者123 更新时间:2023-12-05 02:28:15 24 4
gpt4 key购买 nike

我有一个 Shiny 应用程序,它要求用户输入。刷新页面后如何保持用户输入?例如 - 如果用户写“你好”我会看到他的输入。即使他点击刷新,我仍然希望看到他最后的输入

## Only run examples in interactive R sessions
if (interactive()) {

ui <- fluidPage(
textInput("caption", "Caption", "Data Summary"),
verbatimTextOutput("value")
)
server <- function(input, output) {
output$value <- renderText({ input$caption })
}
shinyApp(ui, server)
}

最佳答案

native Shiny 的方法是“实时”书签 - 请参阅 ?updateQueryString

library(shiny)

ui = function(req) {
fluidPage(
textInput("caption", "Caption", "Data Summary"),
verbatimTextOutput("value")
)
}

server = function(input, output, session) {
observe({
# Trigger this observer every time an input changes
reactiveValuesToList(input)
session$doBookmark()
})
onBookmarked(function(url) {
updateQueryString(url)
})
output$value <- renderText({ input$caption })
}

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

另一种方法是使用 shiny 的 onSessionEnded 回调来保存输入的当前状态,例如通过 save()load() 它们在 session 开始时 - 或使用库( shinyStore )将输入保存在客户端浏览器的 local storage 中:

# install.packages("devtools")
# library(devtools)
# install_github("trestletech/shinyStore")

library(shiny)
library(shinyStore)

ui <- fluidPage(
initStore("store", "myUniqueNamespace"),
textInput("caption", "Caption", "Data Summary"),
verbatimTextOutput("value")
)

server <- function(input, output, session) {
observeEvent(input$store$caption, {
freezeReactiveValue(input, "caption")
updateTextInput(session, "caption", value = input$store$caption)
})

observe({
updateStore(session, "caption", input$caption)
})

output$value <- renderText({ input$caption })
}
shinyApp(ui, server)

关于r - Shiny -点击刷新后如何记住用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72715897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com