@Nikonorovich

Как заставить react перерендерить компонент?

Вроде вопрос простой но не знаю как сделать лучше
Есть компонент, в нем все отлично, все обновляется кроме одной переменной, но она и самая важная.

function CreateList({ filterList, caseMassive }) {

  // в caseMassive приходит массив типа[
  {  label: "first", important: true, id: 1,},
  { label: "second", important: false,id: 2,},
  { label: "third", important: true,id: 3,},
];

  let newMassive = caseMassive;

  // потом я этот масcив переделываю в список лишек "</li>"*

  let finishList = newMassive.map((element) => {
    return <ListItem key={element.id} element={element} />;
  });

  //  И ВООТ на этом этапе и проблема. Сам CreateList замечательно обновляется,
  // но переменная finishList  не перерендывается при изменениях.
  //  как сделать так чтобы переменная finishList также обновлялась при обновлении CreateList ?,

  return <ol>{finishList}</ol>;
}

Сам проект храниться здесь репозиторий
готовый билд посмотреть
  • Вопрос задан
  • 2944 просмотра
Решения вопроса 1
@vadimparinov
Используй state для хранения массива и тогда будет обновляться.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fomenkogregory
@fomenkogregory
Юниор софтварный инженер
использовать immutable data structures. чтобы компонент запустил процесс ререндера ссылка на объект (caseMassive) должна поменяться
https://stackoverflow.com/questions/36084515/how-d...
Ответ написан
Ваш ответ на вопрос

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

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