热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用React.lazy时未捕获未定义错误

我正在尝试实现React文档中提到的基于路由的代码拆分。这是我在添加惰性实现之前的应用程序。这工作正常:importCounterfrom

我正在尝试实现React 文档中提到的基于路由的代码拆分。

这是我在添加惰性实现之前的应用程序。这工作正常:

import Counter from "./Counter";
import Home from "./Home";
import Login from "./Login";
export function App() {
return (

"Loading.."

}>






);
}

我所做的只是用这个替换了 3 个导入:

import { lazy, Suspense } from "react";
const Home = lazy(() => import("./Home"));
const Login = lazy(() => import("./Login"));
const Counter = lazy(() => import("./Counter"));

此代码构建成功,但浏览器上没有任何渲染,我在控制台中收到此错误:

Uncaught undefined
The above error occurred in one of your React components:
in Unknown (created by Context.Consumer)
in Route (at App.tsx:29)
in Switch (at App.tsx:28)
in Suspense (at App.tsx:27)
in Router (created by BrowserRouter)
in BrowserRouter (at App.tsx:25)
in ErrorBoundary (at App.tsx:24)
in App (at src/index.tsx:19)
in Provider (at src/index.tsx:18)
in StrictMode (at src/index.tsx:17)

难道我做错了什么?

附加上下文:

如果重要的话,组件被命名为默认重新导出的组件,因为这是 React.lazy 所要求的:

export { Home as default } from "./Home";

其中一个组件使用 redux,因此应用程序被包装在一个商店提供程序中:




这是我的 tsconfig:

import Counter from "./Counter";
import Home from "./Home";
import Login from "./Login";
export function App() {
return (

"Loading.."

}>






);
}

和包版本:

"react": "^17.0.1",
"react-dom": "^16.13.1",
"react-redux": "^7.2.1",
"react-scripts": "^4.0.1",
"react-router-dom": "^5.2.0",
"typescript": "^4.1.2",

这是GitHub 上的源代码和可能相关的问题。

回答


在查看了我自己的问题之后,我想出了查看依赖项的方法。我reactreact-dom在不同的主要版本上。

这修复了它:

npm i -D react-dom@17.0.1





推荐阅读
author-avatar
你是我的小心肝啊哈哈
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有