【发布时间】:2016-08-14 00:09:03
【问题描述】:
如何更改按钮点击事件的状态?现在我有错误
未捕获的 TypeError:this.setState 不是函数
我知道我不能在这里使用 this.setState 但我不明白我应该在哪里进行绑定
class Popup extends React.Component {
constructor(props){
super(props);
this.state = {opened: false};
}
componentDidMount(){
var popupOpenBtn = document.querySelectorAll('[data-popup]');
popupOpenBtn.forEach(function(item) {
item.addEventListener("click", function(){
this.setState({
opened: true
});
})
});
}
【问题讨论】:
-
这是按钮,console.log(this)
-
永远不要直接改变 this.state,因为之后调用 setState() 可能会替换你所做的改变。将 this.state 视为不可变的。
-
是的,你是对的。但是我怎样才能到达 Popup 并改变它的状态呢?
标签: javascript loops reactjs addeventlistener setstate