2016-09-30 102 views
0

在我閃亮的應用程序中,我希望有一個允許用戶輸入文本的textarea字段。這可以通過以下方式完成:R閃亮保存全局文本區域的輸入

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

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

使用此代碼,我只能看到應用程序當前會話中的文本輸入。我的目標是,將用戶文本輸入永久保存在應用程序中(用戶提供文本輸入,提交和數據將永久顯示在應用程序中)。 閃亮可能嗎?我的想法是以全局的方式存儲數據,如googlesheets。

+0

可以從空文件中讀取初始值,然後每個文本條目都被附加? – zx8754

+0

您可以使用'<< - '而不是'<-'來全局保存變量。如果您希望每個用戶都有專用的保存,那麼你應該看看[http://shiny.rstudio.com/reference/shiny/latest/session.html(sessioninfo),並將其綁定到每個用戶 –

回答

0

一種選擇是將文本條目作爲純文本文件寫入磁盤,可能每次用戶選擇(例如,通過點擊「提交」按鈕)。您可以使用actionButton並且包含代碼保存到磁盤的observeEvent

請注意,您將需要具有唯一的文件名以避免覆蓋。您可以使用時間戳或查看uuid包以生成隨機名稱。

如果您對數據庫更加熟悉,您可以設置一個SQL表併爲每個用戶提交添加一行(這會更可靠,允許您使用它存儲元數據,並避免上面的文件命名問題)。

閃亮本身不是設計用來存儲數據,雖然作者已經寫了一些建議的方法(available here)。