Недавно выяснилось, что скоро React перестанет рекомендовать componentWillReceiveProps
и на его месте появится новая статическая функция getDerivedStateFromProps
. Подробнее…
В настоящее время я переношу свои приложения на этот новый API, но у меня возникла проблема сgetDerivedStateFromProps
из-за того, что я использую библиотеку перекомпоновки для компонентов более высокого порядка. Мы используем 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 () определяется как метод экземпляра и будет проигнорирован. Вместо этого объявите его как статический метод.
Что я могу сделать, чтобы передать его как статический метод жизненного цикла моему компоненту?
setStatic
, но это фактически изменит базовый компонент, что может быть не тем, что вам нужно. - person Oblosys   schedule 17.04.2018