最近有消息说 React 很快就会被弃用componentWillReceiveProps
,取而代之的是新的静态函数getDerivedStateFromProps
。在这里查看更多
我目前正在将我的应用程序迁移到这个新的 API,但是getDerivedStateFromProps
由于我正在使用 recompose 库来处理高阶组件,因此遇到了问题。我们componentWillReceive
通过库的生命周期对象来使用道具。
所以在迁移到新的 API 之前,我有这个:
export function someHoC () {
return compose(
lifecycle({
componentWillReceiveProps (nextProps) {
const { fetch } = nextProps
if (shouldFetch(this.props, nextProps)) {
fetch()
}
}
})
)
}
现在已更改为以下内容:
export function someHoC () {
return compose(
lifecycle({
getDerivedStateFromProps (nextProps) {
const { fetch } = nextProps
if (shouldFetch(this.props, nextProps)) {
fetch()
}
}
})
)
}
但是,getDerivedStateFromProps
需要是静态的,所以我收到了关于这个的警告,不知道如何处理它。
warning.js?7f205b4:33 警告:生命周期(MyComponent):getDerivedStateFromProps() 被定义为实例方法,将被忽略。相反,将其声明为静态方法。
我该怎么做才能将它作为静态生命周期方法传递到我的组件中?