在我的一个项目中,我正在将REACT版本从16.8.6更新到18.2.完成升级后,我在控制台收到的一个主要警告是关于像componentWillReceiveProps这样的过时的生命周期方法.

REACT给出的警告是Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run npx REACT-CODEMD RENAME-UNSAFE-LIFECURES in your project source folder..

componentWillReceiveProps美元对我来说还是有效的.我是不是在升级的时候做错了什么,或者它应该起作用?

推荐答案

我刚刚启动了一个新的Reaction v18项目,并使用了componentWillReceiveProps.它起作用了,我收到了和你一样的"In React 18.x, only the UNSAFE_ name will work..."条短信.所以它仍然在那里,即使是在一个新的项目中.

The documentation now says:

在Reactionfuture 的主要版本中,只有新名称将起作用.

显然,警告文本有些过时了,旧名称的删除还没有完成.

也就是说,在这一点上,最好至少重命名代码中的方法(可能使用他们推荐的codemod),理想情况下重构以完全停止使用它.

Javascript相关问答推荐

RxJS setTimeout操作符等效

当promise 在拒绝处理程序被锁定之前被拒绝时,为什么我们会得到未捕获的错误?

使用AJX发送表单后,$_Post看起来为空

如何将连续的十六进制字符串拆分为以空间分隔的十六进制块,每个十六进制块包含32个二元组?

GrapeJS -如何保存和加载自定义页面

html + java script!需要帮助来了解为什么我得到(无效的用户名或密码)

如何调用名称在字符串中的实例方法?

如何从网站www.example.com获取表与Cheerio谷歌应用程序脚本

编剧如何获得一个div内的所有链接,然后判断每个链接是否都会得到200?

Chart.js-显示值应该在其中的引用区域

在WordPress中使用带有WPCode的Java代码片段时出现意外令牌错误

rxjs插入延迟数据

当使用';字母而不是与';var#39;一起使用时,访问窗口为什么返回未定义的?

当标题被点击时,如何使内容出现在另一个div上?

Next.js中的服务器端组件列表筛选

连续添加promise 时,如何在所有promise 都已结算时解除加载覆盖

在范围数组中查找公共(包含)范围

由于http.get,*ngIf的延迟很大

如何使用useparams从react路由中提取id

验证Java脚本函数中的两个变量