我对本机初学者有所反应。我已经使用“ axios” npm包从API编写了用于fech数据的代码。当我运行时运行正常,但获取数据时则抛出错误。
未定义不是函数(评估'this.setstate(
我怀疑此绑定有问题,但是我不知道如何解决它。请帮助我解决此错误。
下面是我的代码:
nop
谢谢。
答案 0 :(得分:2)
您应该使用箭头功能作为回调:
axios.get('https://facebook.github.io/react-native/movies.json')
.then(response => {
// ...
}
有关更多详细信息,请阅读How to access the correct `this` inside a callback?以了解this
的工作原理。
答案 1 :(得分:0)
关于您的错误,发生的原因是您尝试在错误的上下文中访问 this 。一种解决方案是使用箭头功能将正确的上下文绑定到 this 关键字。
我还建议您在componentDidMount生命周期方法中获取数据,使其变为:
componentDidMount() {
axios.get('https://facebook.github.io/react-native/movies.json')
.then(response => {
var moviesList = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2
});
this.setState({
isolate: false,
movies: moviesList.cloneWithRows(response.data.movies)
});
}).catch(function(error) {
alert(error);
});
}