R Shiny Dynamic选择输入-捕获事件

时间:2019-02-05 21:04:35

标签: r dynamic shiny selectinput

我正在使用renderUI在我的UI上创建动态文本框和下拉列表。我想在文本框/下拉列表中捕获更改事件并修改数据框

下面是创建用户界面的代码

server <- function(input, output, session){

  output$fileContent <- renderTable({
    inFile <- input$csvFile
    csvContent <- read.csv(inFile$datapath)
    output$summary <- renderPrint({str(csvContent)})
    allColumns <- names(csvContent)
    types <- sapply(csvContent, class)
    w <- ""
    for (i in 1:length(allColumns)){
      w <- paste(w, selectInput(paste("inp",allColumns[i], sep = "_"), allColumns[i],choices = c("factor","integer","logical","character", "Date"), selected = types[i], width = 200))
    }
    output$columns <- renderUI({ HTML(w) })
    return (head(csvContent))
  })

所需的输出-

上面的代码根据需要在UI上呈现文本框,但不捕获文本框中值更改时的事件。由于控件是动态的,因此无法为静态捕获事件编写代码,因为控件名称是动态生成的

1 个答案:

答案 0 :(得分:0)

https://gist.github.com/mine-cetinkaya-rundel/0fe2a9830f7151e72053239e73350592上得到答案

它具有适用于动态UI的示例应用程序