React-native生命周期方法警告:" componentWillReceiveProps已弃用,将在下一个主要版本中删除"

时间:2018-03-13 14:20:23

标签: react-native remote-debugging

在react-native中使用生命周期方法时,我在控制台和模拟器中遇到以下警告消息:

  

警告:不推荐使用componentWillReceiveProps,将在下一个主要版本中删除。改为使用静态getDerivedStateFromProps。

     

警告:不推荐使用componentWillMount,将在下一个主要版本中删除。请改用componentDidMount。作为临时解决方法,您可以重命名为UNSAFE_componentWillMount。

警告甚至在模拟器中烦人地显示如下: Warning messages in the Emulator

每当我解除模拟器中的警告消息时,问题都会出现,应用程序崩溃,因此我必须重新启动应用程序。 我该怎么办?

此外,尽管有警告信息,我从未使用过方法" componentWillReceiveProps"。但是,我已经使用了方法" componentWillMount"。甚至与方法" componentWillReceiveProps"?

相关的接收警告信息的原因是什么?

3 个答案:

答案 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