React 子组件调用父组件函数时传递参数遇到的问题

2023-10-31

子组件TodoListUI.js中render函数返回的渲染页面代码包含的LIst组件

                {/*index是循环的下标*/}
                <List
                  style={{marginTop: '10px', width: '300px'}}    
                  bordered
                  dataSource={this.props.list}            
                  renderItem={(item, index) => (
                    <List.Item onClick={(index) => {this.props.handleItemDelete(index)}}>
                        {item}
                    </List.Item>
                  )}
                />

其中onClick事件触发箭头函数调用父组件传递过来的删除方法, 执行该方法并将index作为参数 

父组件中的删除方法

    handleItemDelete(index) {

        //显示子组件传递过来的index参数
        console.log('index   ',index);
        const action = getItemDeleteAction(index);
        store.dispatch(action);
    }

 

出现问题:

         点击2时,删除的1, 控制台发现index值没有显示, 子组件并没有传递过来参数.

分析:

对子组件的箭头函数进行简化模拟

            //定义一个箭头函数          

            const renderItem = (item, index) => {
                //直接输出传入参数
                console.log(index);        //1
                ((index) => {    
                    console.log(index);     //undefined
                })();                         
            }
            
            renderItem('abc', 1);

 onClick触发的箭头函数用一个立即执行的箭头函数模拟.

当执行renderItem函数时, 参数传入, 输出传入参数是1

立即执行的匿名箭头函数声明中需要传入一个参数index, 而调用它的时候没法给匿名函数传入index参数, 因此如果想在箭头函数中使用父级传入的参数, 当前箭头函数的参数就应该为空.

当前箭头函数应该修改为:

                (() => {    
                    console.log(index);     //1
                })();   

同理:子组件TodoListUI.js应该修改为

                    <List.Item onClick={() => {this.props.handleItemDelete(index)}}>
                        {item}
                    </List.Item>

不知道以上理解是否正确, 不吝赐教!

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

React 子组件调用父组件函数时传递参数遇到的问题 的相关文章

随机推荐

  • 【Python数据挖掘课程】五.线性回归知识及预测糖尿病实例

    今天主要讲述的内容是关于一元线性回归的知识 Python实现 包括以下内容 1 机器学习常用数据集介绍 2 什么是线性回顾 3 LinearRegression使用方法 4 线性回归判断糖尿病 前文推荐 Python数据挖掘课程 一 安装P
  • Ubuntu 20.04换国内源

    ubuntu默认的源是国处的源 更新下载速度较慢 因此安装好ubuntu20 04之后 将其源更新为国内的源 步骤如下 1 备份原始的源 源的路径 etc apt sources list 备份操作 cd etc apt cp source
  • 【电工技术】期末复习题

    1 电路是为实现人们的某种需求 由 电源 中间环节和负载三部分按一定方式组合起来 使电流流通的整体 2 在使用叠加定理对电路进行分析时 通常要对电源作除源处理 处理方法是将各个理想电压源 短接 将各个理想电流源 开路 3 利用戴维宁定理可以
  • 分析冰蝎三流量特征以及请求包

    1 使用wireshark获取冰蝎流量 首先在冰蝎中执行命令 捕捉流量 流量特征 可以看Accept字段的值 冰蝎脚本的这个请求值比较固定 还可以看user agent这个字段的值 还可以看content的值 2 分析流量 将数据包内容复制
  • 关于有些网站访问不了的问题

    1 网络攻击导致的 先要确定是不是仅仅一个用户的网页打不开 如果是一个用户的网页打不开 非常可能是这个网站的代码有问题 或许是域名没有分析好等原因 如果是大无数用户或全部用户的网页打不开 首要确定是不是攻击以致的 因为攻击有非常多种 例如C
  • 面试了一个00后,绝对能称为是内卷届的天花板

    前言 公司前段缺人 也面了不少测试 结果竟然没有一个合适的 一开始瞄准的就是中级的水准 也没指望来大牛 提供的薪资也不低 面试的人很多 但平均水平很让人失望 令我印象最深的是一个00后测试员 他技术基础方面确实还不错 面试也表现的非常自信
  • rsync服务

    文章目录 rsync简介 rsync特性 rsync的ssh认证协议 rsync命令 rsync简介 rsync是可以实现增量备份的工具 配合任务计划 rsync能实现定时或间隔同步 配合inotify或sersync 可以实现触发式的实时
  • 新一代树莓派 Raspberry Pi 2 性能测试之软件无线电追踪飞机信息

    新一代树莓派 Raspberry Pi 2 性能测试之软件无线电追踪飞机信息 转载自zza1003169 2015年02月28日 于 开源杂志 发表 安装开源软件无线电 GNU Radio 用电视棒追踪飞机轨迹 众所周知 树莓派 Raspb
  • Discuz!教程之当插件、门户或自定义页面设置成首页时手机版访问跳转到forum.php?mobile=yes的问题

    最近由于项目需要 将自定义单页设置为网站首页 测试过程中一直发现手机版无法访问 被强制跳转到了forum php mobile yes页面 仔细查看了一下Discuz 代码 source class discuz discuz applic
  • 免费python课程排行榜-重庆Python培训机构排行榜

    重庆千锋python全栈开发培训 0基础教学 带你玩转python开发 30天直追年薪20万 快速咨询 Python是一种非常强大的计算机语言 你可能已经听说过很多种流行编程语言 比如非常难学的C语言 非常流行的Java语言 适合初学者的B
  • Apollo如何通知/订阅主题topic

    转自 https blog csdn net u012423865 article details 80024870 How to advertise and subscribe a topic 导读 众所周知 Apollo是基于ROS开发
  • Qt5下串口对高频率自发性数据的接收及处理方法

    在项目中需要用Qt5 9采集仪表中的数据 仪表是以200Hz的频率主动向外连续发送数据 发送频率很高 而且主动发送 不需要软件发送一次 再读取一次 而是软件直接读取 这种直接连续读取 有两个关键点 1 如何从接收buffer里面查找出所需的
  • React:refs转发和useImperativeHandle

    具体的使用范例 可以参考官方API Refs转发 本人也是看了官方API以后自己所学习理解领悟的给记录一下 如果有不正确的地方 可以在文章下方的评论区参与评论 然后指正出来 欢迎各位来评论吧 refs是用来绑定元素的 一定要注意 React
  • Excel导出级联下拉功能实现

    效果如下 直接上代码 自己看 工具类 import cn hutool core util ObjectUtil import com alibaba fastjson JSONObject import lombok extern slf
  • Django vue 搭建前后端分离的web 二

    bootstrap的安装和使用 安装 在vue项目下使用npm直接安装即可 由于bootstrap依赖jQuery 所以第一步安装jQuery npm install jquery 检查在package json的dependencies中
  • 【FPGA实现SPI发送】——详解Verilog代码实现

    FPGA实现SPI发送 详解Verilog代码实现 在FPGA开发中 SPI Serial Peripheral Interface 通信协议是常用的一种 它可以实现单片机与外围设备的连接与数据传输 本文将详细讲解如何通过Verilog代码
  • IGBT基本工作原理及IGBT的作用是什么?

    IGBT由栅极 G 发射 E 和集电极 C 三个极控制 如图1 IGBT的开关作用是通过加正向栅极电压形成沟道 给PNP晶体管提供基极电流 使IGBT导通 反之 加反向门极电压消除沟道 切断基极电 使IGBT关断 由图2可知 若在IGBT的
  • SQL语言编程学习系列(一)——数据库及表的创建与管理

    本系列同样是记录代码为主 附带实验内容与要求 可参考代码 SQL编码习惯为小写且习惯性换行 实验的环境和软件为Microsoft SQLServer 2019 实验内容 1 创建教务管理数据库 jwgl 其数据文件和日志文件分别为jwgl
  • conv、deconv、fractional-strided conv

    fractional strided conv 反卷积有时候也被叫做Fractionally Strided Convolution 翻译过来大概意思就是小数步长的卷积 对于步长 s gt 1的卷积 我们可能会想到其对应的反卷积步长 s l
  • React 子组件调用父组件函数时传递参数遇到的问题

    子组件TodoListUI js中render函数返回的渲染页面代码包含的LIst组件 index是循环的下标