回复:如何在Shiny中重置fileInput的值?

时间:2019-06-22 21:54:15

标签: r shiny

我想再次探讨以下问题:

在按下重置按钮后,如何将“ fileinput”对象的值设置为NULL?

有类似的帖子(how can I update a shiny fileInput object?和(How to reset a value of fileInput in Shiny?),但据我所知,此问题从未解决。

一条评论说:“ 本周早些时候,我向Shiny提交了PR,为此做了一些工作。我认为到月底它会发光。 – DeanAttali 17年6月8日在6:31

在这方面有什么进展吗?

1 个答案:

答案 0 :(得分:0)

我发现这很好用。因此,我没有将input$fileInput重置为NULL,而是将自定义输出设置为NULL,然后您可以将其用于conditionalPaneltoggleState等。

UI功能

fileInput(...)
conditionalPanel(condition = "output.file_upload_condition", ...)

服务器功能

values <- reactiveValues(
  upload_state = NULL
)
#
observeEvent(input$loan_agreement_form, {
  values$upload_state <- 'uploaded'
})
#
observeEvent(input$submit_loan, {
  values$upload_state <- 'reset'
})
#
output$file_upload_condition <- reactive({
  if (is.null(values$upload_state)) {
    return(NULL)
  } else if (values$upload_state == 'uploaded') {
    return(input$loan_agreement_form)
  } else if (values$upload_state == 'reset') {
    return(NULL)
  }
})
#
outputOptions(output, "file_upload_condition", suspendWhenHidden = = FALSE)