gpt4 book ai didi

r - 如何在 Shiny 中重置 fileInput 的值?

转载 作者:行者123 更新时间:2023-12-04 12:01:45 25 4
gpt4 key购买 nike

已经有关于这个问题的类似帖子(例如 how can I update a shiny fileInput object? ),但我仍然无法弄清楚如何迫使 Shiny 忘记 input$file 的值在 fileInput 之后使用小部件。

当一个人想用 actionButton 触发文件上传时,这个问题就变得烦人了。 (在我的例子中称为 "Submit"),然后用另一个 actionButton 重置其值("Reset" 这里)。 当再次单击“提交”按钮时,很明显 input$file 值仍然存在。

我尝试使用一些推荐的解决方案:shinyjs打包和刷新fileInput带有 renderUI 的模块/uiOutput - 但仍然没有结果。

这是我的代码:

服务器.R

shinyServer(function(input, output, session) {

values <- reactiveValues(
file = NULL
)

observeEvent(input$submit, {
values$file <- input$file1
})

observeEvent(input$reset, {
values$file <- NULL
output$resettableInput <- renderUI({
fileInput('file1', label = NULL)
})
}, ignoreNULL = F)

output$summary <- renderText({
return(paste('Uploaded file:', values$file$name))
})
})

ui.R
shinyUI(bootstrapPage(

headerPanel('Reset / Submit file input example'),

sidebarPanel(

uiOutput('resettableInput'),

fluidRow(
column(4,
actionButton('reset', 'Reset All')
),
column(4,
actionButton('submit', 'Submit')
)
)
),

mainPanel(
h4('Summary'),
verbatimTextOutput('summary')
)
))

我将不胜感激任何帮助。

最佳答案

我知道这是一篇旧帖子,但您可以通过在服务器中从头开始重建输入来重置输入。

在 ui.R 你可以放:

...
uiOutput('file1_ui') ## instead of fileInput('file1', label = NULL)
...

在 server.R 中添加:
...
output$file1_ui <- renderUI({
input$reset ## Create a dependency with the reset button
fileInput('file1', label = NULL)
})
...

关于r - 如何在 Shiny 中重置 fileInput 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44203728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com