0

如何在更改 selectinput 选项后立即清除 fileInput 支持的数据文件。我已经尝试过 renderUI 函数,但选项很大,我也尝试过将示例 id 渲染到 fileInput 但observeevent 不起作用。

4

1 回答 1

0

这与使用一点 JavaScript 配合得很好。假设btn是您的 selectInput 的 id :

服务器.R

shinyServer(function(input, output, session) {

  observe({
    input$btn
    session$sendCustomMessage(type = "resetFileInputHandler", "file1") 
  })

})

现在,在客户端,我们需要注册一个将由服务器调用并执行必要更改的处理函数。

用户界面

shinyUI(bootstrapPage(

  fileInput('file1', 'I am the fileInput'),
  selectInput("btn", "Change me", c(1,2,3)),

  tags$script('
    Shiny.addCustomMessageHandler("resetFileInputHandler", function(x) {      
        var id = "#" + x + "_progress";      # name of progress bar is file1_progress
        var idBar = id + " .bar";  
        $(id).css("visibility", "hidden");   # change visibility
        $(idBar).css("width", "0%");         # reset bar to 0%
    });
  ')
))

资源

于 2020-05-08T13:25:22.407 回答