1 回答

TA贡献1799条经验 获得超8个赞
问题正在发生,因为除非您在呈现的组件本身中指定嵌套路由,否则您需要为其提供整个路径名。
解决方案是传递前缀以附加在路径名之前。我们还需要一个尾随/
const generateRoutes = (routes = [], prefix = "") =>
Object.values(routes)
.map(route => {
console.log(prefix);
if (route.redirect) {
return [];
} else if (route.children) {
return (
<Route key={route.path} path={`${prefix}/${route.path}`}>
<Switch>
{generateRoutes(route.children, prefix + "/" + route.path)}
</Switch>
</Route>
);
}
return (
<Route
path={`${prefix}/${route.path}`}
key={route.path}
render={props => <route.component {...props} />}
/>
);
})
.reduce((navigation, route) => navigation.concat(route), []);
添加回答
举报