调用getListitems()有个疑问

来源:2-11 更多 JSX 语法细节(1)

qq_慕用6596887

2021-01-20 22:08:44

请问在ul标签里调用getListItems()这个函数时为什么不用加bind(this),bind()这个方法应该在什么情况下加?是在onClick等事件处理时才加吗?

写回答

1回答

好帮手慕久久

2021-01-21

同学你好,解答如下:

如果方法是事件处理函数,比如handleInputChange就是onChanges事件的事件处理函数,那么就需要使用bind绑定一下this。因为作为事件处理函数使用时,方法内部的this会丢失,即this不会指向组件本身,如下:

http://img.mukewang.com/climg/6008e6f409e2015d09160209.jpg

http://img.mukewang.com/climg/6008e7010900673c06400199.jpg

http://img.mukewang.com/climg/6008e720096738f705680160.jpg

由于此时this是undefined,所以下面的代码就无法正确执行,导致项目报错:

http://img.mukewang.com/climg/6008e7630967de4d06010178.jpg

因此,需要使用bind绑定一下this,即将事件处理函数中的this与当前react实例(组件)绑定一下,这样 this.setState方法就能正确执行了(实例上有setState方法)。

因此,此处可以当做固定用法记住即可。

祝学习愉快!


0

0 学习 · 15276 问题

查看课程