bind的一点疑问!

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

雪挽

2018-06-28

老是想问一下像this.handleItemDelete.bind(this, index)需要额外传参传参的函数 bind怎么写在constructor里让它只绑定一次

写回答

4回答

Dell

2018-07-01

这个没有办法,因为每次传的内容不一样,所以只能这样的动态生成

0
2
Dell
回复
雪挽
都一样,bind本质也就是个函数包装
2018-07-01
共2条回复

箭在弦上憋而不发

2018-06-29

这个应该不可能, 你在构造函数里不可能知道循环的index是几,而且构造函数只走一次,你list改变以后还指望构造函数给的index是对的吗?你说呢?

1
3
雪挽
回复
箭在弦上憋而不发
您说得对
2018-07-03
共3条回复

shen_wl

2018-07-13

.bind(this, index),等于绑定了this,并且将每个Item的index作为handler的预设参数传了进去。Item触发click时hanler被调用,参数就是当时预设的index。
如果在handler里写bind(this),你怎么给handler传参呢。你是不是想onClick={this.handler(index)},这样的话{}里的this.handler(index)不是一个函数,而是handler调用后的结果了。

0
0

20K

2018-07-03

首先,调用bind的时候,函数的this指向就已经强制绑定了,这时函数不会调用。再次调用函数时可以正常传参数,反复传参数并不会影响bind绑定的this指向。

0
0

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

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

5275 学习 · 2496 问题

查看课程