меня key, если он задан?
https://codesandbox.io/s/funny-dew-fzg4zj?file=/src/App.js
Добавь useEffect(() => { console.log("arr", arr); }, [arr]); чтобы отследить изменения arr Ты увидишь что изначально arr это массив объектов, но после обновления он становится массивом с массивом внутри и реакт ругается на отсутствие key потому что map буквально ничего не мапит. Раскрой arr в сеттере: onClick={() => { arr.shift(); setArr([...arr]); }}
Вот я идиот, спасибо!
Что за x и i ты бы еще y добавил. Есть же более осмысленные названия element el index idx и тд
Ну, это просто пример. Во-вторых то что вы предлагаете, является избыточным, тут скорее нужно переименовывать arr на нормальное название с точки зрения бизнес-сущности, которая в этом arr лежит. Человек, который читает код сразу понимает, что массив с пользователями (условно) и по нему идёт фильтрация. Осмысленные названия внутри параметров, которые приходят в предикат излишни потому, что человек, читающий код либо уже знает что делает функция filter ,либо ему нужно прочитать документацию, что бы понять она делает и тогда человек уже будет знать что падает первым и вторым параметром. Исключение составляет тот факт, что функция может быть большой, тогда уже имеет смысл давать более осмысленное название. Так что похоже на что вы видите в именованиях какую-то панацею, забывая об избыточности, которая тоже не хороша
Буквы бесплатные
он как раз правильно сказал
Обсуждают сегодня