【发布时间】:2019-06-05 16:01:36
【问题描述】:
state = {
locationData: {}
}
componentDidMount() {
axios.get('...')
.then(res => {
const data = res.data;
parseString(data, function (err, result) {
this.setState({locationData: result.data[0]}, function(){console.log(this.state.locationData);})
});
})
}
给我错误:
Uncaught (in promise) TypeError: Cannot read property 'setState' of undefined
我发现我需要绑定,但在这种情况下我不明白如何绑定。
【问题讨论】:
-
只需在
parseString的回调主体后附加.bind(this)或使用箭头函数代替 -
您能提供
parseString代码吗? -
那似乎没有任何作用...
-
鉴于您的问题标题,我只想指出错误消息明确指出
this未定义,而不是setState或“反应状态”;这应该让您知道function中的this不再是对您的组件实例的引用。并在此处搜索错误导致:
标签: javascript reactjs state