【问题标题】:Unsafe legacy lifecycles will not be called for components using new component APIs. React v16.3使用新组件 API 的组件不会调用不安全的遗留生命周期。反应 v16.3
【发布时间】:2018-09-09 18:26:23
【问题描述】:

我不确定我做错了什么:

class Test extends React.Component {
  state = {};

  static getDerivedStateFromProps(nextProps) {
    return {};
  }

  render() {
    return null;
  }
}

我在使用 React v16.3 时遇到此错误:

warning.js:33 警告:不安全的遗留生命周期不会被调用 使用新组件 API 的组件。

Test 使用 getDerivedStateFromProps() 但还包含以下内容 遗留生命周期:componentWillReceiveProps

应删除上述生命周期。了解有关此警告的更多信息 这里:

但它不包含componentWillReceiveProps...

【问题讨论】:

  • 你也使用 react-hot-loader 吗?如果是这样,github.com/gaearon/react-hot-loader/issues/918 应该是错误的来源。
  • @Iso 是的,我愿意。谢谢!我不知道。
  • @Iso 您应该将此作为答案发布,以便可以在 SO 中将其标记为这样 :) 这是一个很好的收获

标签: reactjs


【解决方案1】:
class Test extends React.Component {
  state = {};

  static getDerivedStateFromProps(nextProps) {
    return null
  }
}

【讨论】:

  • 虽然这段代码可以回答这个问题,但最好在不介绍其他代码的情况下解释它是如何解决问题的,以及为什么要使用它。从长远来看,纯代码的答案没有用处。
猜你喜欢
  • 2019-12-10
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多