ユーザが別のselectInput(multiple=T)
オプションで選択を変更した後に、動的に生成されたselectInputにユーザが選択した値を保持しようとしています。選択内容を変更すると、動的に生成された値はすべてリセットされます。例えばR Shiny:選択を変更した後に無効入力の値を保持/保持する
:私は最初に "手紙" selectInputから "A"、 "B"、および "C" を選択し、 "1" を選択
。 "1"、 "2"; "A"、 "B"、 "C"によって生成された動的に生成されたselectInputオプションから "1"、 "2"、 "3"
最初の選択:
は、その後、私は唯一の「A」と「B」が選択されている(つまり、私は「C」を削除するように「文字」selectInputオプションで自分の選択を変更したいです)。この後、「A」に対して生成されたすべての値および「B」に対して生成されたすべての値(「a」については「1」、「b」については「1」および「2」)がリセットされる。
リセットおよびBの(空の)値:
私は(最初に選択した場合)、Cを削除した後、aとbの値を保持できますか?
library(shiny)
ui <- fluidPage(
sidebarPanel(
uiOutput("n1"),
uiOutput("n2")
),
mainPanel(
textOutput("Current"),
textOutput("Old")
)
)
server <- function(input, output, session){
output$n1 <- renderUI({
selectInput("no1", "Letters", choices=c("A", "B", "C"), multiple=T)
})
output$n2 <- renderUI({
if(!is.null(input$no1)){
lst <- vector("list", length(input$no1))
for(i in 1:length(lst)){
lst[[i]] <- selectInput(input$no1[i], input$no1[i], choices=c(1,2,3), multiple=T)
}
return(lst)
}
})
# observe({lk <<- reactiveValuesToList(input)})
Values <- reactiveValues(old="start")
session$onFlush(once=FALSE, function(){
isolate({ Values$old<-input$A })
})
output$Current <- renderText({paste(input$A)})
output$Old <- renderText({paste(Values$old)})
# observe({
# updateSelectInput(session, "A", "A", choices=c(1,2,3), selected=Values$old)
# })
}
shinyApp(ui,server)
あなたがそれらを設定する(選択肢を覚えて試みることができますグローバル変数に変換してから、 'updateSelectInput'を使って値を復元してください。今のところ、これらの 'a'、' b'選択は毎回再レンダリングされるので、選択肢はリセットされます –
私の進歩に基づいてコードを更新しました。セッション$ onFlushを使って前の選択の入力を保存できました。今私はこれらの保存された値をupdateSelectInputに組み込む方法を理解しようとしています。どんな助けでも大歓迎です。 – JHou