目前,我正在尝试学习dart语言,并遇到问题。首先是一些代码。 _clickHandler和_constructNode是同一类的方法
EventListener _clickHandler = (Event e){
this.setActive(e.currentTarget);
};
/* Render methods */
Element _constructNode(Node node){
DivElement nodeContainer = new DivElement();
nodeContainer.id = "node-${node.id.toString()}";
nodeContainer.classes.add("node");
SpanElement nodeTitle = new SpanElement();
nodeTitle.text = node.value;
nodeTitle.addEventListener('click', this._clickHandler);
nodeContainer.append(nodeTitle);
return nodeContainer;
}
所以,_clickHandler打破"这":
receiver 'this' is not in scope
我如何使用"这个"事件处理程序中的指针?
答案 0 :(得分:2)
我想删除=
和;
(最后)就足以让您的代码正常工作。
EventListener _clickHandler(Event e){
this.setActive(e.currentTarget);
}
你使_clickHandler
字段引用一个闭包,而在闭包中你没有this
。将其更改为方法将使其按预期工作。