保存输入闪亮的状态

Bat*_*hek 5 r shiny

有没有好的方法来保存在服务器端生成的 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.

Edu*_*gel 3

您可以读取 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)