Size: a a a

React — русскоговорящее сообщество

2021 June 18

T

Taras in React — русскоговорящее сообщество
а вот сам код с консолями (один вне хендлера, другой внутри)
     console.log("initial", statePhones);
   const handleChangeSize = (e) => {
       const choosedSizeID = Number(e.target.id);
       
       let newStatePhones = statePhones;
       const _phone = newStatePhones[choosedSizeID].phone;
       const _isActive = newStatePhones[choosedSizeID].isActive;

       newStatePhones[choosedSizeID] = { id: Number(choosedSizeID), phone: _phone, isActive: !_isActive }

       setStatePhone(newStatePhones)
       console.log("newState", newStatePhones);
   }
источник

Ю

Юрий in React — русскоговорящее сообщество
Попробуй так :)
const handleChangeSize = (e) => {
 const choosedSizeID = Number(e.target.id);
 setStatePhone((prev) => ({ ...prev, [choosedSizeID]: { ...prev[choosedSizeID], isActive: !prev[choosedSizeID].isActive } }));
};
проблему наверное не решит, но кода с виду меньше
источник

YF

Your Friend in React — русскоговорящее сообщество
поле в объекте не вызывает ререндер
источник

YF

Your Friend in React — русскоговорящее сообщество
проверь свой хук, искуственную переменную создай, если отработает, я выше написал, почему как есть щас у тебя не перерисует
источник

Ю

Юрий in React — русскоговорящее сообщество
я бы по другому сделал впринципе. Не знаю зачем тебе нужен statePhones, я бы сделал пустой массив. По клику на телефон в этот массив добавлял бы телефон, и через фильтр убирал бы его если он есть. А условие отрисовки сделал бы через arr.includes(phone) ? active : noactive
источник

VS

Vitaly Skorecki in React — русскоговорящее сообщество
кто знает как избавиться от множества импортов картинок в компонент или это нормальная практика, когда полстраницы в импортах?
источник

T

Taras in React — русскоговорящее сообщество
Всем большое спасибо за советы!
Буду тестировать и разбираться, учитывая подробности)
источник

Ю

Юрий in React — русскоговорящее сообщество
и handleChangeSize повесил бы внутри map, передавая ему сразу телефон
источник

T

Taras in React — русскоговорящее сообщество
понял, попробую так)
спасибо!
источник

Ю

Юрий in React — русскоговорящее сообщество
создай отдельный файл с импортами, потом экспортируй только этот файл
источник

YF

Your Friend in React — русскоговорящее сообщество
https://stackoverflow.com/questions/57296596/changing-object-property-in-an-array-with-react-hooks-does-not-evoke-a-re-render да нечего тебе разбираться объект по другому меняй))
источник

T

Taras in React — русскоговорящее сообщество
да я понял это уже) Спасибо)
источник

VS

Vitaly Skorecki in React — русскоговорящее сообщество
а потом в src как достучаться до определенного изображения?
источник

ei

export default - зло... in React — русскоговорящее сообщество
источник

V

Vladimir in React — русскоговорящее сообщество
Спасибо 🙏
источник

Ю

Юрий in React — русскоговорящее сообщество
так делаешь в файле где все картинки
источник

Ю

Юрий in React — русскоговорящее сообщество
потом так получаешь
источник

Ю

Юрий in React — русскоговорящее сообщество
в теории должно работать, но я всегда сомневаюсь в своих советах :)
источник

VS

Vitaly Skorecki in React — русскоговорящее сообщество
ааа понял, в общем, будет один длинный импорт с кучей картинок
источник

Ю

Юрий in React — русскоговорящее сообщество
есть еще вариант
источник