Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “如何修复”;应在arrow函数数组回调返回“return”中返回值;?_Javascript_Reactjs - Fatal编程技术网

Javascript “如何修复”;应在arrow函数数组回调返回“return”中返回值;?

Javascript “如何修复”;应在arrow函数数组回调返回“return”中返回值;?,javascript,reactjs,Javascript,Reactjs,我不明白,你们需要通过地图返回具体的方式吗 componentDidMount() { // read the items db let categories = []; items.map(cat => { if (categories.indexOf(cat.category) === -1) { categories.push(cat.category); } }); console.log(categories); this.se

我不明白,你们需要通过地图返回具体的方式吗

componentDidMount() {
  // read the items db
  let categories = [];
  items.map(cat => {
    if (categories.indexOf(cat.category) === -1) {
      categories.push(cat.category);
    }
  });
  console.log(categories);
  this.setState({ categories: categories });
}

是的,它要求您返回一些内容来创建新数组。 如果您只想迭代项并将一些值推送到categories数组,那么可以使用forEach或for…of。
this.setState({
类别:items.filter(cat=>categories.indexOf(cat.category)==-1).map(cat=>cat.category)

})
map的目的是从旧数组生成新数组。函数的返回值指定数组中该点的新值应该是什么。由于您没有返回任何内容,因此将生成一个未定义的
数组。这可能是一个错误,因此lint规则正在警告您

在您的情况下,您似乎根本不关心map生成的数组,因此解决方法是使用更合适的方法,例如
.forEach

let categories = [];
items.forEach(cat => {
  if (categories.indexOf(cat.category) === -1) {
    categories.push(cat.category);
  }
});
从:

数组有几种用于过滤、映射和折叠的方法。如果我们忘记在这些函数的回调中编写return语句,那可能是个错误。如果您不想使用返回或不需要返回的结果,请考虑使用.Frach替代。


尝试使用迭代器as for或forEach map从它返回的映射中不起作用 要渲染的新数组可能未定义或 在您的情况下,您似乎根本不关心map生成的数组,因此解决方法是使用更合适的方法,例如.forEach或for

let categories=[];
常量项=[];
用于(让cat进入项目){
if(类别索引of(类别)=-1){
类别。推送(类别);
}
};

控制台日志(类别)您根本不返回,在映射中,您通常返回yes,除非您希望有未定义的值,items.map(cat=>(categories.indexOf(cat.category)==-1)?categories.push(cat.category):未定义,没有多大意义,forEach更适合用于副作用,因为在这种情况下,从远处看,您试图做的只是将状态类别设置为
items
,没有重复项。这可以写成
this.setState({categories:items.filter((el,i,arr)=>arr.indexOf(el)==i);