「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

相关文章

ider文件查找功能失效

在ider中,配置快速查找文件为ctrl+shift+R(Eclipse风格),有时明明类存在,却搜索不到,这时可以清除idea缓存并重启试试: 第一步:点击 File 选择 Invalidate Caches/Restart 第二步:

Form 表单的 resetFields() 失效原因

假设我们有如下代码:  <template><ElForm ref="formRef" :model="formModel" :rules="rules"><!-- 表单内容 --></ElForm></template><script setup>import { ref } from 'vue';const formRef = ref(null);const formModel = ref

【佳学基因检测】网站加密证书失效后,如何移除并为新的证书安装准备环境?

【佳学基因检测】网站加密证书失效后,如何移除并为新的证书安装准备环境? 当WoTrus DV Server CA证书失效后,你需要确保你的Nginx配置中不再引用该证书,并且移除或替换相关的证书文件。以下是具体步骤: 1. 确认Nginx配置文件 首先,检查Nginx的配置文件,确保它不再引用旧的WoTrus证书。如果你已经使用Certbot安装了Let’s Encrypt证书,Certbo

wx.chooseMessageFile在pc端微信小程序失效解决方法

项目场景: 在uniapp上驱动微信开发者工具(下图) 在手机上和微信开发者工具中(图1)都可以上传成功, 打开pc端的微信小程序 在pc端打开小程序时点击上传没反应 问题描述 提示:这里描述项目中遇到的问题: 在pc端打开小程序上传的时候发现点击上传没有反应,通过(    console.log("打印====111")    )打印步骤发现wx.chooseM

sql 中使用like%、函数导致索引失效的解决方案

SELECTp1.*FROM cdr_voice_202407_0 AS p1 WHERELENGTH( p1.calling_number ) < 11 AND p1.calling_number LIKE '%10086%' 上边的sql中如果 calling_number  是索引  会导致索引失效 涉及的 WHERE 子句有两个条件: LENGTH(p1.calling_numbe

android:navigationBarColor失效

android:navigationBarColor失效。 上结论,是项目引入了setupdesign设计,GlifLayout相关联的自定义布局overrride了NavigationBar主题,需要用setupdesign自定义的属性来设置颜色。 <item name="android:navigationBarColor">@color/black</item><item name="

Android TextView设置跑马灯失效

1.关于问题 TextView失效在网上有详细的解决方案,大部分时候都能够很好的解决问题 下面给出网上的解决方案: <TextViewandroid:layout_width="100dp"android:layout_height="22dp"tools:text="水浇地放松放松开发的开始放假考试的飞机开了撒酒疯恐龙时代解封了开始的"android:ellipsize="marquee"

BeanUtils.copyProperties复制属性失效排查

旁边的同事代码出现了bug, BeanUtils.copyProperties复制失败, 导致target类的值全是null BeanUtils.copyProperties复制是按照字段名称匹配的 首先注意字段名称是否完全对应, 以及对应的字段类型target的get和set类不全, 同事是因为类上没写@Data, 摸鱼帮忙排查了一些, 然后恍然大悟…

Vue Element Plus el-select 使用 filterable 搜索下 @blur 事件绑定失效

失效原因 使用 filterable 导致 blur 事件绑定在输入框上,而不是整个选择器上 当点击选项时,输入框失去焦点触发 blur 事件 而点击其她位置收起下拉款的时候,并不会触发输入款的 blur 事件 解决方案 使用 element 提供的 visible-change 事件进行绑定 在该事件绑定的函数上添加 visible 参数 当 visible 为 tru

Notification PendingIntent失效,每个通知都响应第一个PendingIntent

1、bug描述 可生成多个通知,但通知生成后,点击均响应第一个通知对应的PendingIntent。 但之前是可以正常使用的。 2、可能原因 期间,对AndroidStudio进行升级到3.2.1,buildToolsVersion更新到28.0.3。 并没有其他的额外涉及通知的操作,所以可能的原因是build更新,使得PendingIntent.getActivity的第2个和第4个参数重新起作