有没有好的方法来保存在服务器端生成的 Shinyinput 的状态(不要重置)?
例子
ui=shinyUI(fluidPage(
selectInput("select","",choices = c(1,2),multiple = T),
uiOutput("din_ui")
))
server=function(input, output,session) {
output$din_ui=renderUI({
lapply(input$select,function(i){
numericInput(inputId = paste0("num_",i),i,"")
})
})
}
shinyApp(ui,server)
Run Code Online (Sandbox Code Playgroud)
如果我选择 1 in selectinsert some values into num_1than add 2 in selectthan num_1reset to start value.
您可以读取 numericInput 值,并在控件初始化时设置控件值。参见代码:
library(shiny)
ui=shinyUI(fluidPage(
selectInput("select","",choices = c(1,2),multiple = T),
uiOutput("din_ui")
))
server=function(input, output,session) {
output$din_ui=renderUI({
input$select
isolate(
lapply(X = input$select,
FUN = function(i){
cn <- paste0("num_",i)
numericInput(inputId = cn,
label = i,
value = ifelse(!is.null(input[[cn]]), input[[cn]], ''))
}
)
)
})
}
shinyApp(ui,server)
Run Code Online (Sandbox Code Playgroud)