玖叶教程网

前端编程开发入门

小程序 Taro react Error Minified React error #321 白屏报错

一、出现的场景:

1.Taro的编译正常,也能监听代码修改,并且没有报错;
2.用小程序ide引入并打开dist文件夹,报了如下截图中的错误

二、报错截图:

Error: Minified React error #321

三、问题分析

这种情况出现的原因可能有很多,每个人遇到的情况可能不一样,主要是要从报错推测问题来正面解决一下。

从截图中的报错来看,是React相关的报错,然后看其中的堆栈报错信息,说是react.production.min.js中的useMemo导出相关有问题,可以看到底部的报错信息是从@taro-之类的某个库报出来的。

那么做个推论,react导出某个函数(截图中指出是useMemo),taro并不识别,可能是taro在使用react框架的过程中没有识别到。但是react框架肯定没问题,taro框架往往也不会有问题,那么不识别的问题,就很有可能是taro版本和react的版本,没有做好版本依赖关系导致的。

所以思路往react和taro的版本依赖上去考虑。

四、尝试和解决

1.首先检查react和react-dom的版本是否匹配,如果不匹配,那么修改成一致,重新npm install;

2.检查Taro版本,查看package.json中的@tarojs/taro和@tarojs/cli版本是否一致,
并且检查当前终端中使用的Taro版本:

taro --version

需要保持这3个的版本一致,如果不一致,那么使用以下的2个命令,让项目和终端使用的taro版本保持一致。

taro update self [version] // 更新 Taro 开发工具 taro-cli 到指定版本或 Taro3 的最新版本
taro update project [version] // 更新项目所有 Taro 相关依赖到指定版本或 Taro3 的最新版本

并且需要重新npm install。

3.如果仍然不行,那么检查package-lock.json中的taro相关库的版本,是否和package.json中的版本保持一致。
一个重要需要注意的点就是,taro相关库版本号前面的版本控制符号:

"@tarojs/taro": "3.5.12",
"@tarojs/cli": "^3.5.12", // 需要去掉前面的^号,保持和tarojs/taro一致

比如这个cli库前有^这样的大版本控制符号,在npm install的时候,如果3.x系列库有高于3.5的库(比如:3.6.14),那么安装的也就是3.6.14,而不是看到的3.5.12,这样实际上导致taro和cli的版本不一致。

改成一致后,都需要npm install一下。

五、小结

我截图中出现的问题,正是由于方案3中的版本号问题造成的,导致实际install的tarojs/cli是3.6.14(在package-lock.json中可以看到),而和tarojs/taro中3.5.12版本不匹配。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言