@Korifa

Почему не изменяется поле id в state react?

При нажатии на ссылку адрес в строке url меняется, а в консоле вижу что id у класса не меняется5d397b249ce8e041534361.png
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
hzzzzl
@hzzzzl
не надо писать пропсы в стейт, лучше работать сразу с этим this.props.....number там где надо

этот компонент Worker каждый раз создается новый, или создается только один раз, и потом по обновлению url надо в нем менять контент? конструктор же только 1 раз выполняется, то есть один раз выставляется this.state.id из пропсов, а потом уже нет

ну или так
https://ru.reactjs.org/docs/react-component.html#c...
Также он подходит для выполнения таких сетевых запросов, которые выполняются на основании результата сравнения текущих пропсов с предыдущими. Если пропсы не изменились, новый запрос может и не требоваться.......... итд


---
там же
https://ru.reactjs.org/docs/react-component.html#c...
Примечание:
Не копируйте пропсы в состояние! Это распространённая ошибка:
...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
https://overreacted.io/writing-resilient-components/

Очень внимательно прочитайте статью и найдёте причину проблемы.

// edit

Параметр id в state записывается только в конструкторе. Чтобы оно было обновлялось, нужно использовать либо getDerivedStateFromProps, либо вызывать setState в componentDidUpdate, если изменился "props.params.match.number".
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы