「R shiny 抓虫」为什么我的fileInput失效了?

2024-06-23 20:38
文章标签 失效 fileinput shiny 抓虫

本文主要是介绍「R shiny 抓虫」为什么我的fileInput失效了?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

只有经历几个我得花好久才能找到的bug,我才觉得我有点会用Shiny了

今天在写Shiny 的时候遇到了几个巨大的问题,就是Shiny中一个组件fileInput无论如何都无法上传文件

2013053-b01de05ebda39995.png
fileinput

我在这个问题上花了差不多1个小时时间,其中大概做了如下几件事情:

  • 不断的进行代码注释,检查我新增代码块是否有问题
  • 重启电脑
  • 将代码放到另一台电脑上运行

直到问题的解决的一瞬间,我才认识到福尔摩斯的话是多么正确

当你排除所有的不可能,无论剩下的是什么,即使是不可能也一定是真相.

接下来,我就提供一个最简单的代码复现出我的问题。由于这是很最简洁代码了,相信大家应该能够比较容易发现错误

if (interactive()) {ui <- fluidPage(sidebarLayout(sidebarPanel(fileInput("file1", "Choose CSV File",accept = c("text/plain",".vcf")),tags$hr(),checkboxInput("header", "Header", TRUE)),mainPanel(tableOutput("contents"),downloadLink("a",label = "Download"),downloadLink("a",label = "Download"))))server <- function(input, output) {output$contents <- renderTable({# input$file1 will be NULL initially. After the user selects# and uploads a file, it will be a data frame with 'name',# 'size', 'type', and 'datapath' columns. The 'datapath'# column will contain the local filenames where the data can# be found.inFile <- input$file1if (is.null(inFile))return(NULL)read.csv(inFile$datapath, header = input$header)})}shinyApp(ui, server)
}

我用动图演示下效果

2013053-57af4cecbc2cf869.gif
错误演示

下面是正确答案的分割线


文件无法上传的原因是下面这两行一模一样的代码。由于他们拥有相同的outputId, 其结果就是Shiny 没有解析出数据的输入和数据,结果导致Shiny的reactive体系无法正确调用server函数

        downloadLink("a",label = "Download"),downloadLink("a",label = "Download")

有了这个血泪教训,我想之后,我应该更会小心的处理inputIdoutputId了吧

我的一个好朋友果子老师经常说我成长很快,因为他们做一次实验的时间,我们的运算可以重复很多次。但是同样的,我们明天也要经历更多的失望。那些杀不死你的会让你更强大,所以我变秃了,也变强了。

这篇关于「R shiny 抓虫」为什么我的fileInput失效了?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088219

相关文章

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Idea插件MybatisX失效的问题解决

《Idea插件MybatisX失效的问题解决》:本文主要介绍Idea插件MybatisX失效的问题解决,详细的介绍了4种问题的解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录一、重启idea或者卸载重装MyBATis插件(无需多言)二、检查.XML文件与.Java(该文件后缀Idea可能会隐藏

C++迭代器失效的避坑指南

《C++迭代器失效的避坑指南》在C++中,迭代器(iterator)是一种类似指针的对象,用于遍历STL容器(如vector、list、map等),迭代器失效是指在对容器进行某些操作后... 目录1. 什么是迭代器失效?2. 哪些操作会导致迭代器失效?2.1 vector 的插入操作(push_back,

MySQL索引失效问题及解决方案

《MySQL索引失效问题及解决方案》:本文主要介绍MySQL索引失效问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql索引失效一、概要二、常见的导致MpythonySQL索引失效的原因三、如何诊断MySQL索引失效四、如何解决MySQL索引失

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

MySQL进阶之路索引失效的11种情况详析

《MySQL进阶之路索引失效的11种情况详析》:本文主要介绍MySQL查询优化中的11种常见情况,包括索引的使用和优化策略,通过这些策略,开发者可以显著提升查询性能,需要的朋友可以参考下... 目录前言图示1. 使用不等式操作符(!=, <, >)2. 使用 OR 连接多个条件3. 对索引字段进行计算操作4

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora