我使用自定义API来获取数据。我有一个包含要获取的每个数据的对象,因此一切都是动态的。此时必须使用 fetch()函数获取数据。现在,在安装组件(componentDidMount)时发出了请求。由于我使用对象来获取每个Json数据,因此我必须映射此对象。
componentDidMount(){
CATEGORIES.map(function(category){
this.fetchApiData(category.key);
});
}
现在我已正确定义了 fetchApiData()。它实际上没有映射,但在映射对象时没有。
答案 0 :(得分:1)
您正在尝试访问另一个无法访问fetchApiData属性的函数内的this
。要使用封闭上下文,请使用基于胖箭头的函数:
componentDidMount(){
CATEGORIES.map((category) => {
this.fetchApiData(category.key);
});
}
答案 1 :(得分:0)
这种情况的上下文在地图的回调函数中发生了变化。您可以将其分配给变量并在地图的回调函数中使用它。
componentDidMount(){
var that = this;
CATEGORIES.map(function(category){
that.fetchApiData(category.key);
});
}