Size: a a a

JavaScript Noobs — сообщество новичков

2021 July 30

Ш

Шепс in JavaScript Noobs — сообщество новичков
держи, там все просто
источник

К

Кристианос in JavaScript Noobs — сообщество новичков
Понимаю
источник

D

Danila in JavaScript Noobs — сообщество новичков
Всё нормально, альтернативы ещё хуже
источник

D

Danila in JavaScript Noobs — сообщество новичков
Проблема в тебе
источник

К

Кристианос in JavaScript Noobs — сообщество новичков
Спасибо, но у меня просто ошибка вылетает хрен поймёшь из за чего но я гляну
источник

D

Danila in JavaScript Noobs — сообщество новичков
😏
источник

T

Taras in JavaScript Noobs — сообщество новичков
Парни, помогите со стейтом
Есть такая штука:
 const [members, setMembers] = useState<Member[]>(initialMembers);

members - массив объектов
я хочу изменить свойство объекта
делаю через мап
const updatedMembers = members.map((m, i) => {
     if (m.email === member.email) {
       m.isConfirmInvite = "pending";
     }
     return m;
   });

   setMembers(updatedMembers);

в консоли свойство updatedMembers меняется
но почему-то ничего не перерисовывается
не понимаю почему
я ведь создал новый массив
прошелся мапом по текущему
и в стейт записал новый массив
источник

W

Wanna_Phonila in JavaScript Noobs — сообщество новичков
ты мутируешь данные
источник

ША

Шувалов Андрей... in JavaScript Noobs — сообщество новичков
Сложнее переучиться чем научиться. Ибо определенные вещи делаешь интуитивно верно, не особо думая, а где то нужно голову ломать, ибо не сходится с твоим образом мышления, подходами и методами
источник

D

Danila in JavaScript Noobs — сообщество новичков
return {...m}
источник

D

Danila in JavaScript Noobs — сообщество новичков
Но вообще должно работать вроде же
источник

D

Danila in JavaScript Noobs — сообщество новичков
Я забыл как кодить
источник

W

Wanna_Phonila in JavaScript Noobs — сообщество новичков
не. Реакт же не делает ререндеры, если ты просто мутировал объект
источник

D

Danila in JavaScript Noobs — сообщество новичков
Это вообще не об этом
источник

T

Taras in JavaScript Noobs — сообщество новичков
так тоже не работает
   const newArray = members.slice();

   const updatedMembers = newArray.map((m, i) => {
     if (m.email === member.email) {
       m.isConfirmInvite = "pending";
     }
     return m;
   });

   setMembers(updatedMembers);
источник

D

Danila in JavaScript Noobs — сообщество новичков
Он вызвал setMembers и oldState !== newState
источник

D

Danila in JavaScript Noobs — сообщество новичков
Так что должен быть ререндер
источник

D

Danila in JavaScript Noobs — сообщество новичков
Мутация сама по себе не приводит к перерисовке, а замечание о том что нельзя мутировать стейт имеет другие причины
источник

D

Danila in JavaScript Noobs — сообщество новичков
Технически это не мешает обновлению
источник

ША

Шувалов Андрей... in JavaScript Noobs — сообщество новичков
Заведи тетрадку и рисуй блок схемы. Как вариант
источник