如何在 Shiny 中重置 fileInput 的值?

2024-03-13

关于此事已经有类似的帖子(例如如何更新闪亮的 fileInput 对象? https://stackoverflow.com/questions/17352086/how-can-i-update-a-shiny-fileinput-object),但我仍然无法弄清楚如何迫使 Shiny 忘记一个值input$file之后fileInput使用小部件。

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

我尝试使用一些推荐的解决方案:shinyjs包装和清爽fileInput模块与renderUI/uiOutput——但还是没有结果。

这是我的代码:

server.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')
 )
))

我将不胜感激任何帮助。


input$file1由 Shiny 缓存,因此在下次上传之前不会更改。

因为您想要一个映射到的文件名变量input$file1$name大多数时间但重置为NULL当单击重置按钮时,您需要创建另一个图层并维护这种关系。

  • 您可以创建一个变量upload_state,将其设置为uploaded包含文件上传事件,以及reset带重置按钮。

  • 使用反应式表达式input$file1$name or NULL根据upload_state value.

没有必要submit button.

library(shiny)
ui <- shinyUI(bootstrapPage(
  headerPanel("Reset / Submit file input example"),
  sidebarPanel(
    fileInput('file1', label = NULL),
    fluidRow(
      column(4,
             actionButton('reset', 'Reset Input')
      ))
  ),

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

server <- shinyServer(function(input, output, session) {
  values <- reactiveValues(
    upload_state = NULL
  )

  observeEvent(input$file1, {
    values$upload_state <- 'uploaded'
  })

  observeEvent(input$reset, {
    values$upload_state <- 'reset'
  })

  file_input <- reactive({
    if (is.null(values$upload_state)) {
      return(NULL)
    } else if (values$upload_state == 'uploaded') {
      return(input$file1)
    } else if (values$upload_state == 'reset') {
      return(NULL)
    }
  })

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

shinyApp(ui = ui, server = server)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Shiny 中重置 fileInput 的值? 的相关文章

  • 如何使用 grid.arrange 移动图例位置

    我试图在一页中排列 4 个图 将图例放在底部中心 我用它来获取其中一个图的图例 因为它们对于四个图来说是相同的 get legend lt function myggplot tmp lt ggplot gtable ggplot buil
  • 计算数据帧 R 中字符串的频率

    我想计算数据框中某些字符串的频率 strings lt c pi pie piece pin pinned post df lt as data frame strings 然后我想计算字符串的频率 counts lt c pi in pi
  • R Leaflet:添加多边形时传递 popupOptions。

    Within addPolygons 有一个popup参数就像addPopups 功能 区别 我认为 是当弹出窗口创建时addPolygons 可以单击多边形内的任意位置来触发弹出窗口 但是如果addPopups 被使用 单个lng and
  • linux下无法安装Cairo包

    我在本地下载该软件包并尝试安装它 但出现此错误 R CMD INSTALL l usr local lib64 R library Cairo 1 5 1 tar gz 我得到他的错误 checking for PNG support in
  • 通过 :: 调用包中的函数是一个好习惯吗

    我正在编写一些 R 函数 这些函数在其他包中使用一些有用的函数 例如stringr and base64enc 不打电话好不好library or require 首先加载这些包但要使用 直接引用我需要的功能 比如stringr str m
  • 使用 SP 包中的 SpatialPoints() 转换坐标参考系 (CRS) 以创建空间数据框

    Issue 我有一个形状文件我已将其导入到 R 中 并为正在进行的分析选择了感兴趣的变量 我的最终目标是插值点数据 海豚 ID 获取海面温度 SST 堆栈中每个单独的光栅文件的值70 栅格来自名为 ncin SST 的对象 该对象是使用函数
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • 使用开源闪亮服务器时,我的图标不会显示在我的应用程序的浏览器选项卡上

    我一直在尝试找到一种方法将 ico 与托管在开源闪亮服务器上的闪亮应用程序的快捷方式关联起来 最终 我希望 ico 显示为我的应用程序快捷方式的图形 而且 我希望用户在创建应用程序的快捷方式时显示 可用此图标 听起来很简单 但事实证明这是一
  • 获取所有参数作为列表

    R 是否提供对象 函数 方法 关键字来获取所有函数参数 使用一个例子 function a b default 会提供a and b也 在函数环境内 有没有类似的说法list 这还包括a and b在结果中 或者换一种方式 简写list a
  • 在 R 中索引数据帧

    再会 我不明白这里的主题 就像它有效但我不明白为什么 我有这个数据库 planets df is pre loaded in your workspace Use order to create positions positions lt
  • r testthat 和 covr 在非包库中使用

    我希望能够使用testthat and covr在一个项目中not一个 r 包 事实上不使用任何第三方服务 只是普通的旧 r 源文件的集合 我正在努力找出这是否可行 如果可以 则已设置有关如何设置的说明 我发现假设你正在编写一个 r 包 我
  • 使用 ggplot 未完全填充等值线图

    我正在尝试使用以下方法绘制我的第一个填充等高线图ggplot 根据我的数据 我期待类似的结果 但我的结果是 a lt c 1 1 1 1 1 3 1 2 2 2 2 2 2 5 2 1 3 3 3 3 1 3 2 b lt c rep c
  • 指定生存图的自定义时间点

    我正在努力使用以下方法创建生存 累积事件图ggsurvplot函数从survminer包裹 我想为我的绘图指定自定义时间点 但我不知道该怎么做 这xlim and break x by参数有点帮助 但它们创建了均匀间隔的时间点和比我想要的更
  • R CMD 检查警告:在文档对象中使用的函数/方法...但不在代码中

    我正在写一个包 但一个持久的R CMD check警告阻止我完成包裹并将其发布到 CRAN 我用roxygen2对于内联文档 尽管这可能不是错误的根本原因 如果您知道如何删除此警告 我很可能可以找到一种方法来使用roxygen2 如何删除警
  • R:install.packages 中出现错误:无法打开连接

    我试图安装 RINDSEL 包 但无法安装它 并且不断收到以下错误 install packages 中出错 无法打开连接 我从以下位置下载了该软件包 rindsel 1 0 2 zip 综合养殖平台 http old ibpdev net
  • 双向条形图,两侧带有正标签ggplot2

    我尝试在 ggplot 中创建一个双向条形图 其中轴上方和下方的轴标签和数据标签均为正值 例如 如果您的数据是 myData lt data frame category c yes yes no no month c Jan Feb Ja
  • 如何拆分 data.frame -> 将合并应用于子集 -> 合并到 data.frame 中

    我真的不知道如何在不使用 for 循环的情况下实现这一目标 x lt c a b c d gt x 1 a b c d data lt data frame x c a b a b c a a b c d name c one one tw
  • ggplot() 使用scale::percent_format() 缩放产生奇怪的结果

    library tidyverse mtcars gt count cyl gt mutate prop n sum n gt ggplot aes x cyl y prop geom point scale y continuous la
  • 无法使用 cairo 安装 R

    我正在从源代码安装 R cd R 3 2 2 configure prefix pwd with cairo yes with readline no with libpng yes with x no 我已经从源代码安装了 cairo v
  • 替换向量中非 %in% 向量的值

    简短的问题 我可以像这样替换某些变量值 values lt c a b a b c a b df lt data frame values 将 df values 的所有值替换为 x 其中值是neither a 或 b 输出应该是 c a

随机推荐

  • Access 2010:连接三个表,未知错误

    我正在尝试在 SQL 查询中连接 MS Access 2010 中的三个表 SELECT Track trackName TrackIsGenre genre ContainsTracks albums FROM Track INNER J
  • 如何在苹果拒绝元数据后仅提交应用程序详细信息,以避免将应用程序添加到审核时钟

    由于演示帐户详细信息无效而导致元数据被拒绝后 我们是否可以重新提交应用程序 以避免添加回审核队列并重新启动审核时钟 As Per 此链接是 iTunes Connect 和元数据拒绝的一个简单错误 http www brynbodayle
  • 使图像空白透明,覆盖到 imshow()

    我有一个用 imshow 显示的空间数据图 我需要能够覆盖产生数据的晶格 我有一个PNG 作为黑白图像加载的晶格文件 我想要的该图像的部分 覆盖是黑线 它们是晶格 看不到线之间的白色背景 我想我需要将每个背景 白色 像素的 Alpha 设置
  • 如何简化复杂的多边形?

    最近我一直在思考如何将复杂的多边形转换为非复杂的多边形 这是怎么做到的 这就是我想做的事情 完成后我将使用 JavaScript 但任何形式的解决方案都可以 语言 算法或简单的英语 我将使用与手动绘制多边形时相同的启发式 这可能不是计算该多
  • 基本动画 HTML 和 CSS

    所以我只是一个初学者 我只是想弄清楚动画及其工作原理 我的计划是在一条直线上以无限度数 比方说 90 度 无限地移动球 以下是我想知道的几个问题 有没有更好的方法来使用具有共同规则和略有不同规则 具有不同旋转 的类 如何让球在具有不同旋转的
  • 检查变量是否是液体中的字符串或数组类型

    在 Jekyll 中你可以使用液体模板 https shopify github io liquid 我正在尝试编写一个包含网站中所有链接的导航 sitemap home demo right right left left 我想要实现的是
  • Google 地图片段在片段内返回 null

    所以我有一个包含地图片段的空片段 每当我尝试激活包含地图的片段时 我的应用程序都会崩溃并在这一行返回空指针错误 map MapFragment getFragmentManager findFragmentById R id map get
  • 在plsql中检查用户密码是否有效

    我需要检查数据库用户是否有效 我将允许用户使用以下方式更改密码ALTER命令 但在执行此操作之前 我想验证他们当前的密码 以确保他们的身份与他们所说的一致 是否可以在 pl sql 内部获取用户 密码组合并检查其是否有效 我认为 Oracl
  • Maven:存储库ID的含义

    在我的 POM 文件中 我指定了两个存储库
  • JavaFX MediaPlayer:MP4 不会在 Windows 7 上循环

    我创建了一个基本的 JavaFX 媒体播放器 在我的 Windows 10 操作系统上 一切正常 并且完全按照预期运行 private MediaPlayer initializeMediaPlayer Media media new Me
  • 在elasticsearch中,有没有办法显示文档中的哪个字段是“命中”?

    当使用elasticsearch搜索一些文档时 我想看看文档中的哪个字段是 命中 将其标记为搜索结果 是否有本地方法可以执行此操作 或者我需要在搜索客户端中执行此操作 E g GET events search q nottingham 给
  • git update-index --skip-worktree 是否会影响上游存储库?

    我自己已经使用 git 一段时间了 现在正在为我们的团队建立一个存储库 我们开发一个电子商务平台 有一些目录和文件需要忽略 例如上传目录和环境特定的配置文件 虽然配置文件位于 gitignore 上 但我想使用以下任一方法忽略上传目录 sk
  • 亚马逊 EC2 实例

    我已经使用命令行工具设置了亚马逊 EC2 实例 我已经为其创建了密钥对等 并且它已启动并正在运行 我尝试使用以下命令通过 SSH 连接到它 我在 Snow Leopard 中运行 bash ssh i ec2 keypair email p
  • 排除方法maven

    我试图将 PIT 排除在改变 I O 方法之外 例如 close 和 flush 这是我的 Maven 配置
  • 构造对象时出现“无法将参数从 '[classname](_cdecl *)(void)' 转换为 '[classname]'”错误

    注意 我使用的是 Visual Studio 2010 这里有两个重要的类 Date 和 Directory class Date private int month day year public Date Date int month
  • 如果 Google 电子表格中的单元格值为 0 或空白,则删除该行

    如果该行中的 C 列输入的值为 0 或空白 我希望能够删除 Google 电子表格中的整行 我可以编写一个简单的脚本来完成此任务吗 谢谢 我可以建议一个不使用脚本的简单解决方案 假设您要删除 C 列中包含空文本的行 对工作表中的 C 列数据
  • 带快速拨号功能的颤动浮动操作按钮

    是否有任何现成的小部件或从哪里开始带有快速拨号操作的浮动操作按钮 https material io guidelines components buttons floating action button html buttons flo
  • 使用 PHP 设置百分比格式

    我想将 0 45 格式化为 45 我知道我可以做类似的事情FLOOR x 100 但想知道是否有更好的方法 更好的定义是更标准 不一定更快 一种想法是http php net manual en class numberformatter
  • 如何在markdown中插入来自url的图像

    将图像插入 Markdown 文件的方法是 并且它在 外部 r
  • 如何在 Shiny 中重置 fileInput 的值?

    关于此事已经有类似的帖子 例如如何更新闪亮的 fileInput 对象 https stackoverflow com questions 17352086 how can i update a shiny fileinput object