Это хорошо сочетается с битом JavaScript. Предполагая, что btn
- это идентификатор вашего selectInput:
server.R
shinyServer(function(input, output, session) {
observe({
input$btn
session$sendCustomMessage(type = "resetFileInputHandler", "file1")
})
})
Теперь на стороне клиента нам нужно зарегистрировать функцию-обработчик, которая будет быть вызванным сервером и внести необходимые изменения.
ui.R
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%
});
')
))
source