我真的需要一个帮助,因为我完全迷失了,我找到了所有我能找到的东西。我有一个selectInput,我需要为每个可能的选择加载一个表。不幸的是,当我连续两次使用相同的文件时,输入文件没有被触发,我无法第二次加载文件。我无法相信我是第一个解决这个问题的人...... 这就是我发现的尽可能解决方案,但它似乎不起作用how can I update a shiny fileinput
任何暗示都将非常受欢迎
library(shiny)
runApp(list(
ui = bootstrapPage(
tags$script('Shiny.addCustomMessageHandler("resetFileInputHandler", function(x) {
var el = $("#" + x);
el.replaceWith(el = el.clone(true));
var id = "#" + x + "_progress";
$(id).css("visibility", "hidden");
});'
),
sidebarPanel(
fileInput("file1", NULL, width="80%"),
selectInput('uploadFormat', label = "Select upload format",
choices = c(
"Option 1" = 'f1',
"Option 2" = 'f2',
"Option 3" = 'f3'),
selected = 'f1')
),
mainPanel(
verbatimTextOutput("summary"),
uiOutput("Table")
)
),
server = function(input, output, session) {
userEnv <- new.env()
userEnv$tablecsv <- NULL
observe({
input$file1
input$uploadFormat
f <- input$uploadFormat
if (!is.null(input$file1))
if (is.null(userEnv$tablecsv[[f]]))
(userEnv$tablecsv[[f]] <- read.table(input$file1$name, header = FALSE, sep=";", dec="."))
session$sendCustomMessage(type = "resetFileInputHandler", "file1")
T <- userEnv$tablecsv[[f]]
output$Table <- renderTable({T})
})
output$summary <- renderText({
return(paste("Uploaded file: ", input$file1$name))
})
}
))