如何解决此“预期在箭头函数中返回值”错误

时间:2019-06-13 19:22:31

标签: javascript reactjs

我要解决此问题

我尝试了所有事情:p


    Tabs.map(tab => {
     Lessons.filter(lesson => lesson.section_id === undefined && lesson.tab_id === tab.id).map(lesson => {
      this.state.items.push(
       {
        id: lesson.id,
        slug: lesson.slug
       }
      );
     });
     Sections.filter(section => section.tab_id === tab.id).map(section => {
      Lessons.filter(lesson => lesson.section_id === section.id).map(lesson => {
       this.state.items.push(
        {
         id: lesson.id,
         slug: lesson.slug
        }
       );
      });
     });
    });

  

第31行:预期会在箭头函数中返回一个值   array-callback-return
第32行:预期在中返回一个值   箭头函数array-callback-return
第40行:预期返回   箭头函数array-callback-return
中的值
第41行:   预期在箭头函数中返回值   array-callback-return

搜索关键字以了解有关每个警告的更多信息。 要忽略,请将// // eslint-disable-next-line添加到前面的行中。

3 个答案:

答案 0 :(得分:0)

存储或返回结果:

const result = Tables.map(...)
return Tables.map(...)

或者只使用旧的for of

for(let tab of Tables){
    ...
}

在嵌套地图上,请确保每次都返回:

map(lesson => setState({ lessons: this.state.lessons.concat(lesson)}))

请勿使用push,您正在更改状态(与您的问题无关)

答案 1 :(得分:0)

如果您尝试从功能上遍历数组,请使用.forEach而不是.map

.map应该用于要根据现有数组的值创建新数组的情况。

有关更多信息,请参见以下答案:https://stackoverflow.com/a/34426481/1337057

 Tabs.map(tab => {
 Lessons.filter(lesson => lesson.section_id === undefined && lesson.tab_id === tab.id).forEach(lesson => {
  this.state.items.push(
   {
    id: lesson.id,
    slug: lesson.slug
   }
  );
 });
 Sections.filter(section => section.tab_id === tab.id).forEach(section => {
  Lessons.filter(lesson => lesson.section_id === section.id).forEach(lesson => {
   this.state.items.push(
    {
     id: lesson.id,
     slug: lesson.slug
    }
   );
  });
 });
});

答案 2 :(得分:0)

只需将地图替换为forEach。地图应该会返回一些东西。