react-router-dom v6 动态路由报错

2022-10-21 17:31:05 +08:00
 ohohohh
export const meunsTreeSelect = (data: any) => {
const item: any = [];
data.forEach((list: any) => {
const newData = {};
const meta = {};
meta.title = list.name;
newData.meta = meta;
newData.path = list.path;
newData.element = lazyLoad(list.component);
newData.children = list.children ? meunsTreeSelect(list.children) : null; // 如果还有子集,就再次调用自己
item.push(newData);
});
return item;
};



const lazyLoad = (moduleName: string) => {
let Module;
if (moduleName === 'layouts') {
Module = lazy(() => import(`@/${moduleName}/index.tsx`));
} else {
Module = lazy(() => import(`@/pages/${moduleName}.tsx`));
}
return (
<Suspense fallback={<>加载中...</>}>
<Module />
</Suspense>
);
};

点击菜单后,报错
Uncaught TypeError: Cannot read properties of undefined (reading '0')
1657 次点击
所在节点    React
5 条回复
ohohohh
2022-10-21 17:39:18 +08:00
最后生成的路由如下
ohohohh
2022-10-21 17:41:24 +08:00
报错信息
wenerme
2022-10-21 18:15:40 +08:00
import(`@/${moduleName}/index.tsx`)); 不能包含变量
ohohohh
2022-10-24 08:49:33 +08:00
@wenerme #3 如果有变量要如何处理?
wenerme
2022-10-24 16:43:38 +08:00
@ohohohh 罗列所有变量,做 map ,不推荐使用 webpack 的动态能力做动态分割

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/888788

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX