在react-native中使用生命周期方法时,我在控制台和模拟器中遇到以下警告消息:
警告:不推荐使用componentWillReceiveProps,将在下一个主要版本中删除。改为使用静态getDerivedStateFromProps。
警告:不推荐使用componentWillMount,将在下一个主要版本中删除。请改用componentDidMount。作为临时解决方法,您可以重命名为UNSAFE_componentWillMount。
每当我解除模拟器中的警告消息时,问题都会出现,应用程序崩溃,因此我必须重新启动应用程序。 我该怎么办?
此外,尽管有警告信息,我从未使用过方法" componentWillReceiveProps"。但是,我已经使用了方法" componentWillMount"。甚至与方法" componentWillReceiveProps"?
相关的接收警告信息的原因是什么?答案 0 :(得分:7)
我认为这不会影响您的申请,只会令人讨厌。
将以下内容添加到index.js
:
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings([
'Warning: componentWillMount is deprecated',
'Warning: componentWillReceiveProps is deprecated',
'Module RCTImageLoader requires',
]);
答案 1 :(得分:2)
这些弃用通知并非归因于React Native 0.54中的土地,但错误的是,您可以将React Native升级到0.54.1并看到这些消息消失了。
了解更多here。
答案 2 :(得分:0)
只需替换
componentWillReceiveProps(nextProps) { ... }
与
static getDerivedStateFromProps(nextProps, prevState) { ... }
并使用prevState
作为当前状态。
请记住,此方法应该返回一个对象以更新状态,或者返回null以不更新任何内容,并且无权访问组件实例。像redux这样的东西。 参见this