【发布时间】:2018-05-24 14:41:35
【问题描述】:
我正在尝试制作 Shiny App,它允许用户保存输入并稍后加载它们。
解决这个问题的最简单方法是制作保存按钮,它可以保存输入。这是要演示的基本应用程序:
服务器.R
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
sliderInput("integer", "Integer:",
min = 0, max = 1000,
value = 500)
),
mainPanel(tableOutput("values"),
actionButton('save_inputs', 'Save inputs')
)
))
server <- function(input, output, session) {
sliderValues <- reactive({
value = input$integer
})
output$values <- renderTable({
sliderValues()
})
observeEvent(input$save_inputs,{
saveRDS( input$integer , file = 'integer.RDS')
})
}
shinyApp(ui = ui, server = server)
但是,我想自动保存,例如我希望在会话结束时保存输入。 onSessionEnded() 应该是对此的回答,但它无法达到输入值并保存它们。
session$onSessionEnded( function() {
saveRDS( input$integer, file = 'integer.RDS')
})
返回错误:警告:
.getReactiveEnvironment()$currentContext 中的错误:操作未 在没有主动反应上下文的情况下允许。 (你试图做某事 这只能从反应式表达式或观察者内部完成。)
有什么办法可以解决吗?
【问题讨论】:
标签: r input shiny save session-state