如何在使用本地持久存储时立即更新dataTableOutput

时间:2020-05-31 21:45:58

标签: r shiny shiny-reactivity

我需要永久性存储以显示曾经输入的所有记录,并且实现了如下操作:

humanTime <- function() format(Sys.time(), "%d%m%Y-%H%M%OS")

formData <- reactive({
  data <- sapply(fieldsAll, function(x) input[[x]])
  #data <- c(data, timestamp = humanTime())
  data <- t(data)
  data
})

saveData <- function(data) {
  fileName <- sprintf("%s_%s.csv",
                      humanTime(),
                      digest::digest(data))

  write.csv(x = data, file = file.path(responsesDir, fileName),
            row.names = FALSE, quote = TRUE)
}

# action to take when submit button is pressed
observeEvent(input$submit, {
  saveData(formData())
})

并按以下方式显示数据:

output$responsesTable <- DT::renderDataTable(
  loadData(),
  rownames = FALSE,
  options = list(searching = FALSE, lengthChange = FALSE,server=TRUE)
) 

它可以很好地显示我曾经输入的所有记录。但是问题是,当我单击提交时,datable无法反映数据。我刷新了我的应用程序(按F5键),现在我检查时,最近输入的数据也会在数据表中更新。

点击“提交”(actionButton)后,有什么方法可以使其显示。

我还需要更改DataTableOutput的标题。例如,如果inputId为“ aname”,则数据表的列标题为“ aname”,但我需要它作为标签中给出的“ Associate Name”。

textInput("aname", "Associate Name")

0 个答案:

没有答案