我有一个很大的问题。我正在尝试运行一个具有很多不同设置的程序,这些设置可以在用户界面中设置。就我而言,用户可能需要多次使用相同的设置运行程序。我的问题是,如果刷新或重新启动用户界面,所有内容都会设置为默认值。例如:
numericInput("1",
label = h4("...."),
4,
min=1,
max=100,
step=1
),
br(),
numericInput("2",
label = h4("..."),
1000000,
min=1,
max=100000000,
step=1
)
如果我将 numericInput“1”设置为 7,然后重新运行该程序,默认情况下它将设置为 4。由于我有相当多的这些设置,这可能会让人大吃一惊。所以我的问题是:“有没有办法保存我所做的更改?”
谢谢你:)
这是一个棘手的话题。最好有一个客户端解决方案。 HTML5 允许使用本地存储。有许多 javascript 库都有简单的 api。我对其中一个进行了包装作为概念证明:
devtools::install_github("johndharrison/shinyStorage")
library(shinyStorage)
library(shiny)
runApp(
list(
ui = fluidPage(
addSS(),
uiOutput("textExample")
)
, server = function(input, output, session){
ss <- shinyStore(session = session)
output$textExample <- renderUI({
myVar <- ss$get("myVar")
if(is.null(myVar)){
textInput("textID", "Add some text to local storage")
}else{
textInput("textID", "Add some text to local storage", myVar)
}
})
observe({
if(!is.null(input$textID)){
if(input$textID != ""){
ss$set("myVar", input$textID)
}
}
})
}
)
)
所以这个演示看起来并不多。在文本输入框中输入一些文本刷新您的浏览器,文本就会被记住啦!该方法可以扩展到任何 R 列表,例如大小高达 10mb 的对象。我会在包装上做更多修改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)