Javascript 如何解决;这是未定义的;测绘后
我正在使用自定义API获取数据。我有一个对象,其中包含要获取的每个数据,因此所有内容都是动态的。此时必须使用fetch()函数获取数据。现在,在安装组件时发出请求(componentDidMount)。因为我使用一个对象来获取每个Json数据,所以我必须映射这个对象Javascript 如何解决;这是未定义的;测绘后,javascript,reactjs,Javascript,Reactjs,我正在使用自定义API获取数据。我有一个对象,其中包含要获取的每个数据,因此所有内容都是动态的。此时必须使用fetch()函数获取数据。现在,在安装组件时发出请求(componentDidMount)。因为我使用一个对象来获取每个Json数据,所以我必须映射这个对象 componentDidMount(){ CATEGORIES.map(function(category){ this.fetchApiData(category.key); }); } 现在我已
componentDidMount(){
CATEGORIES.map(function(category){
this.fetchApiData(category.key);
});
}
现在我已经正确地定义了我的fetchApiData()。它实际上在没有映射的情况下工作,但在映射对象时不起作用。此操作的上下文在映射的回调函数中发生更改。您可以将其分配给变量,并在映射的回调函数中使用该变量
componentDidMount(){
var that = this;
CATEGORIES.map(function(category){
that.fetchApiData(category.key);
});
}
您正试图在另一个无法访问fetchApiData属性的函数中访问此。要使用封闭上下文,请使用基于胖箭头的函数:
componentDidMount(){
CATEGORIES.map((category) => {
this.fetchApiData(category.key);
});
}
嗯……这是一个区别的游戏。你改变了什么?为什么它要解决这个问题?@Quentin箭头函数将上下文绑定到
这个
,原来的问题使用了一个正常的函数,但没有。令人惊讶的是,这个函数工作得很好!谢谢@Blake@Oluwatobiloba您可以在此处查看一些示例以了解更多信息: