我没有找到问题的答案,所以我必须在这里发布问题。为什么第二张地图中的<Route>
组件不起作用?它获取数据,但不构建<Route>
组件。第一张地图中的<Route>
有效。也许这是一个简单的解决方案,但我找不到。
const {genres} = this.state;
return(
<React.Fragment>
<Switch>
{!_.isUndefined(genres) &&
genres.map(g => {
if(_.isEmpty(g.subgenres)) return <Route path={g.link} component={Page} key={g._id}/>;
else g.subgenres.map(sub => <Route path={sub.link} component={Page} key={sub._id}/>);
})
}
</Switch>
</React.Fragment>
);
数据结构示例:
genres = [
{
"_id":"823710",
"name":"Rock",
"subgenres":[
{
"_id":"29033",
"name":"Heavy Metal",
"link":"/heavy-metal"
},
{
... other data ...
}
],
"link":""
},
{
... other data ...
}
]
谢谢!
答案 0 :(得分:1)
您不会在else分支中返回任何内容。添加return
关键字,它应该可以正常工作。
genres.map(g => {
if (_.isEmpty(g.subgenres)) {
return <Route path={g.link} component={Page} key={g._id} />;
} else {
return g.subgenres.map(sub => (
<Route path={sub.link} component={Page} key={sub._id} />
));
}
})