使用【Dawn】构建工具开发项目过程中,使用到了React.lazy来进行代码分隔处理。
遇到如下报错信息:
Element type is invalid. Received a promise that resolves to: undefined. Lazy element type must resolve to a class or function.
大概意思是:元素类型无效。 接收到undefined的Promise。 Lazy元素类型必须解析为类或函数。
一开始,以为我的写法有错误,不断在尝试其他写法。写了一个简单的Demo都报错。
接着尝试使用create-react-app初始化项目,用react-scripts构建项目,发现一点问题没有。
显然,Dawn在构建过程中,对组件代码做了处理。
大神指点后,改为如下代码,完美解决
const FormLayoutUI = React.lazy(async () => {
const com = await import("./FormLayoutUI");
return { default: com.default || com };
})