Как определенно заменить componentWillReceiveProps и продолжать получать nextProps?

#reactjs #react-redux

#reactjs #реагировать-redux

Вопрос:

Я использую React 16.8.4 в своем приложении, и мне действительно нужно использовать nextProps в некоторых случаях. Как упоминается в документах React, componentWillReceiveProps — НЕБЕЗОПАСНЫЙ метод, и его больше не рекомендуется использовать.

Я прочитал документы ( https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html#recommendation-fully-uncontrolled-component-with-a-key ) но я даже не знаю, как перенести мой старый componentWillReceiveProps, используя эту версию с ключами и всем остальным.

Мне не нужно создавать новый экземпляр компонента, мне просто нужны nextProps!!! Я пытался использовать componentDidUpdate (), но я не хочу получать предварительные запросы, я ХОЧУ СЛЕДУЮЩИЙ РЕКВИЗИТ!

Не могли бы вы, ребята, помочь?

Ответ №1:

this.props in componentDidUpdate будет таким же, как nextProps в componentWillReceiveProps , так что вы могли бы это использовать.

 // componentWillReceiveProps(nextProps) {
//   if (nextProps.someProp !== this.props.someProp) {
//     doSomething();
//   }
// }

componentDidUpdate(prevProps) {
  if (this.props.someProp !== prevProps.someProp) {
    doSomething();
  }
}
  

Ответ №2:

Вы можете использовать getDerivedStateFromProps вместо componentWillReceiveProps .

Комментарии:

1. Не могли бы вы добавить немного контекста, пожалуйста? Это точно то же самое?