@Adventure2068

Как обновлять state при обновлении props?

Есть компонент, который получает prop из родительского компонента, который меняется в зависимости от значения input в род. компоненте. В зависимости от этого prop нужно фильтровать массив данных, и присваивать его state данного компонента. Как лучше это сделать? Если я обновляю state в componentDidUpdate выводит ошибку о бесконечном цикле.
class CardsWrapper extends Component {
    constructor(props){
        super(props)
        this.state = {
            films: [],
            currentSearch: props.currentSearch
        }

    }

    componentDidUpdate(prevProps, prevState){
        let search = this.props.currentSearch
        let films = filmsArray.filter(obj => !obj.title.search(search))

        }
    }

    render(){
        return (
            <div>
                <ul>
                    {this.state.currentSearch   }
                </ul>
            </div>
        )
    }


}

export default CardsWrapper
  • Вопрос задан
  • 1480 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Если я обновляю state в componentDidUpdate выводит ошибку о бесконечном цикле.

Добавьте проверку, что изменились именно props:

componentDidUpdate(prevProps, prevState) {
  if (this.props.currentSearch !== prevProps.currentSearch) {
    // ваш код с вызовом setState
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Jasulan98
сначала надо через shouldcomponentupdate проверить обновить или нет(true or false).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 15:28
10000 руб./за проект
29 мар. 2024, в 15:11
50000 руб./за проект
29 мар. 2024, в 15:06
50000 руб./за проект