Задать вопрос
@MarkLb

Почему дочерний компонент React игнорирует новый проп?

Изучаю React на тестовом проекте.

В компоненте Exercise есть дочерние Set. При удалении Set - нумерация их должна пересчитываться, но этого не происходит: в консоли виден верный результат пересчета, но Set будто игнорирует обновленный проп number.

WgqrQac.png
Иллюстрация: Новые значения пропа в консоли, и фактическое отображение

Demo&Code: https://codesandbox.io/s/shy-glitter-zrukv?file=/s...

Подсчёт нумерации происходит в ExerciseView:
function ExerciseView({id, title, sets}) {
    let number = 0;
    return (
        <div className="col-12" key={id}>
            <h5>{title}</h5>
            <table className="table table-bordered">
                <tbody>
                {sets.map((set) => {
                    return <Set {...set} number={number++} />
                })}
                </tbody>
            </table>
        </div>
    );
}
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Merion Academy
    Frontend-разработка на React
    4 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега React
Конечно, Set игнорирует изменения пропса:
class Set extends React.Component {
    constructor(props) {
        super(props);

        this.state = {
            id: props.id,
            weight: null,
            reps: null,
            enableMaxReps: false,
            number: props.number || 0,
            isFilled: false,
        };
    }
}

Уберите number из state, зачем он там?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
от 250 000 до 300 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽