关于this的问题

来源:3-5 拆分组件与组件之间的传值

质检员

2018-07-20

子组件this.handleClick.bind(this),如果我没理解错这个this应该是指向TodoItem,那为什么this.props.index可以拿到父组件传递过来的值,而this.props.deleteItem确要再bind(this)绑定父组件this才能获调用该方法呢?按视频中dell老师的说法,this.props.deleteItem相当于this.handleDeleteItem,当前组件没有handleDeleteItem方法,那当前子组件也没有定义index属性啊。

写回答

2回答

Dell

2018-07-20

我看了你的问题,第一个反应就是,你根本没搞清this到底是什么。函数如果不运行,是没有this作用域的,只有执行的时候,才有this。我们是让函数执行的时候this放生改变,所以采用bind(this)

1
1
质检员
谢谢dell老师,我明白this的意思,只是我这里的表达的不是很清楚,我最开始认为this.props.index指向的是子组件的index等价于this.index(困惑当前没有定义index),实际上是子组件接受了父组件的index,子组件的props中包含了父组件传递过来的key value,而父组件传递的函数最开始只是用this指定,没有用bind绑定父组件this,所以this.props.deleteItem就相当于this.那个方法,但是子组件是不存在那个方法的,所以父组件需要绑定this,谢谢dell老师,就相当于调用父类的方法。
2018-07-21
共1条回复

慕运维2858188

2018-07-29

bind 其实返回的是一个新的函数 

1
0

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

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

5275 学习 · 2496 问题

查看课程