List.Item的this绑定问题

来源:5-6 使用 Redux 完成 TodoList 删除功能

qq_一个人一個人_0

2020-02-16

图片描述您好,Dell老师,为什么我用这种一般的this绑定方法给List.Item中的onClick方法绑定this好像行不通呢?控制台会报下面这种错图片描述请问这是为什么啊?

写回答

2回答

Dell

2020-02-20

你这绑定的不是函数,是函数的执行结果

0
1
qq_一个人一個人_0
您的意思是说下面函数先执行完了然后再在上面绑定了this的吗?这个constructor函数不是在组件初始化的时候被执行了吗?
2020-02-21
共1条回复

哭着敲代码

2020-02-16

在JSX语法当中,花括号也就是{}里面的内容其实就是Javascript表达式,而小括号可以是理解为执行符,用来调用执行方法函数。所以在你的那段JSX代码中,其实是传入一个index参数,执行了deleteListItem那个方法,而这个方法的返回值不是一个新的函数,而是一个undefined,这应该就是React发出警告的原因。而在dell老师的视频中,这个方法因为是要传入一个在JSX中才知道的一个参数,所以放在constructor函数中虽然可以绑定this指定,但不能做到参数的传递,所以是选择在JSX中使用Function原型链上的bind方法进行this的绑定和参数的传递,bind方法的执行会返回一个绑定的新的this指向上面的函数,可以看看MDN上关于bind方法的介绍:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

0
0

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程