【问题标题】:Shiny - How to remember user input after click on refresh?Shiny - 单击刷新后如何记住用户输入?
【发布时间】:2022-06-22 21:18:52
【问题描述】:

我有这个 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)
}

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    一种原生的闪亮方法是“实时”书签 - 请参阅?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")
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 2013-09-14
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多