我要解决此问题
我尝试了所有事情: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添加到前面的行中。
答案 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。地图应该会返回一些东西。