【问题标题】:R shiny save input of text area globallyR闪亮全局保存文本区域的输入
【发布时间】:2016-09-30 08:15:18
【问题描述】:

在我闪亮的应用程序中,我希望有一个 textarea 字段,允许用户提供文本输入。这可以通过以下方式完成:

ui.R:
tags$textarea(id="item",rows=3,cols=40,placeholder="Type your message...")
verbatimTextOutput("news")

server.R:
output$news <- renderText(input$item)

使用此代码,我只能在应用程序的当前会话中看到文本输入。我的目标是,将用户文本输入永久保存在应用程序中(用户提供文本输入、提交和数据将永久显示在应用程序中)。 这可能与闪亮吗?我的想法是像 googlesheets 一样以全局方式存储数据。

【问题讨论】:

  • 可以从空文件中读取初始值,然后附加每个文本条目?
  • 您可以使用&lt;&lt;- 代替&lt;- 全局保存变量。如果您希望每个用户都有特定的保存,那么您应该查看 [shiny.rstudio.com/reference/shiny/latest/session.html] (sessioninfo) 并将其绑定到每个用户

标签: r shiny textarea


【解决方案1】:

一种选择是将文本条目作为纯文本文件写入磁盘,可能是每次用户选择时(例如,通过点击“提交”按钮)。您可以使用actionButton 并拥有一个包含要保存到磁盘的代码的observeEvent

请注意,您需要有唯一的文件名以避免覆盖。您可以使用时间戳或查看uuid 包来生成随机名称。

如果您对数据库更熟悉,您也可以设置一个 SQL 表并为每个用户提交附加一行(这将更加可靠,允许您使用它存储元数据,并避免文件上面的命名问题)。

Shiny 本身并不是为存储数据而设计的,尽管作者已经编写了一些建议的方法 (available here)。

【讨论】:

    猜你喜欢
    • 2015-01-17
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2017-07-17
    相关资源
    最近更新 更多