You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.2 KiB
1.2 KiB
绑定listeners时候this的新写法
FineUI中事件体系,借用listeners进行事件通知. 在绑定事件的时候,有的同学喜欢使用箭头函数,有的同学喜欢使用传统function() 并无优劣,唯一需要注意的即是this指向问题
先看一个示例
class Widget extends BI.Widget {
render() {
const self = this;
const widget = {
type: "bi.multi_select_item",
ref: ref => this.itemRef = ref,
text: "复选item",
listeners: [
{
eventName: BI.MultiSelectItem.EVENT_CHANGE,
actin: () => {
this.fireEvent("EVENT_CHANGE", this.itemRef.isSelected())
}
}, {
eventName: BI.MultiSelectItem.EVENT_CHANGE,
actin: function () {
self.fireEvent("EVENT_CHANGE", this.isSelected())
}
}
]
}
}
}
相信大家能看出两个listener的区别, 一个可以省掉self,但是需要ref,一个不需要self可以直接通过this访问组件