踩过的一些坑
React 使用ES6+语法时 事件绑定疑惑
在JavaScript中经常会遇到this
的问题,非ES6语法写React大多时候是不用担心this
的问题,因为React自动绑定了。
Autobinding: When creating callbacks in JavaScript, you usually need to explicitly bind a method to its instance such that the value of this is correct. With React, every method is automatically bound to its component instance. React caches the bound method such that it’s extremely CPU and memory efficient. It’s also less typing!
但是在ES6中就没有自动绑定了。需要自己手动绑定,使用.bind(this)
或者使用箭头函数=>
No Autobinding
Methods follow the same semantics as regular ES6 classes,meaning that they don’t automatically bindthis
to the instance.You’ll have to explicitly use.bind(this)
or arrow functions=>
第一种
|
第二种
|
第三种
关于sendInputEventWithName
事件名自定义。
第一种
需要重写customDirectEventTypes
或者 customBubblingEventTypes
添加自定义事件名称
第二种
RCTDirectEventBlock
:直接事件,这种事件类型作为不影响UI的一些事件,比如“图片加载失败”。RCTBubblingEventBlock
:冒泡事件,就和操作DOM一样,影响UI的事件,比如“点击按钮事件”。