V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ohohohh
V2EX  ›  React

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

  •  
  •   ohohohh · 2022-10-21 17:31:05 +08:00 · 1431 次点击
    这是一个创建于 545 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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')
    ohohohh
        1
    ohohohh  
    OP
       2022-10-21 17:39:18 +08:00
    最后生成的路由如下
    ohohohh
        2
    ohohohh  
    OP
       2022-10-21 17:41:24 +08:00
    报错信息
    wenerme
        3
    wenerme  
       2022-10-21 18:15:40 +08:00
    import(`@/${moduleName}/index.tsx`)); 不能包含变量
    ohohohh
        4
    ohohohh  
    OP
       2022-10-24 08:49:33 +08:00
    @wenerme #3 如果有变量要如何处理?
    wenerme
        5
    wenerme  
       2022-10-24 16:43:38 +08:00
    @ohohohh 罗列所有变量,做 map ,不推荐使用 webpack 的动态能力做动态分割
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3526 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:55 · PVG 12:55 · LAX 21:55 · JFK 00:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.