Daniil
это конечно дорогая операция, но смотря как у тебя все построенно по ключам дешевле если из не менять (по содержимому)
Daniil
просто удалил ключ минималный и все
Alexander
Ребят, а как принято в реакте работать с title? Менять их в зависимости от страницы? Единственный title находится в index.html
Sergey
ну в принципе лучше массивом, тогда просто shift сделать
Так а разве без удаления нельзя? Просто подменять данные текущие для аккаунта
Daniil
Так а разве без удаления нельзя? Просто подменять данные текущие для аккаунта
я не понимаю как у тебя индексы с аккаунтами связаны, напиши в личку более подробно
Daniil
я не понимаю твою задачу зачем менять id+1 или что ты хочешь делать
Daniil
накидай мелкий пример в сандбоксе так будет проще наверно
Daniil
все что я понял что есть какие-то задачи есть какие то id и есть какие-то аккаунты и что-то нужно менять, но как все взаимосвязанно я не понял
Dmitry
У меня есть стейт services: [ {id: 1, name: 'Элемент 1', description: 'Описание элемента 1', checked: false}, {id: 2, name: 'Элемент 2', description: 'Описание элемента 2', checked: false}, {id: 3, name: 'Элемент 3', description: 'Описание элемента 3', checked: true}, {id: 4, name: 'Элемент 4', description: 'Описание элемента 4', checked: false}, ] Мне нужно как-то заменить true на false
Dmitry
case ON_SERVICE_SELECT: return { ...state, services: [ ...state.services, ............ ] };
Dmitry
Как правильно это сделать?
Dmitry
Я могу сначала скопировать массив, а потом заменить его целиком
Daniil
я бы делал через мап
Daniil
самый простой способ мне кажется
Daniil
services = services.map(e => ({...e, checked:false})) что-то типа того
Vitaliy
Привет всем, у меня такая проблема, подскажите пожалуйста что можно сделать
Vitaliy
Вот скрин с index,js на всякий
Daniil
ошибка в том что нельзя вызову функции что-то присвоить (он сам возвращает значение)
Vitaliy
А куда тогда можно observer присвоить?
Daniil
да кстати может в этом дело
O1af
возьми обьект метода и присвой ему что то
Владислав
Народ, на мобилах есть события mousedown и mouseup?
Daniil
нет там тачи
Vitaliy
Хорошо, спасибо попробую.
O1af
Хорошо, спасибо попробую.
убери скобки и все
Vitaliy
Помогло, спасибо👍
Владислав
нет там тачи
а есть, что может это заменить?
Daniil
как заменить?
Владислав
альтернативы mouseup есть?
Daniil
touchup или что-то в этом роде, обычно полифилы используют, так как не все там просто, в разных браузерах немного иначе может быть
Владислав
ок, спасибо
Dmitry
services.map(e => ({...e, checked: action.checked})) А как поменять checked только у объекта с id = 3?
Dmitry
?
Dmitry
это массив services: [ {id: 1, name: 'Элемент 1', description: 'Описание элемента 1', checked: false}, {id: 2, name: 'Элемент 2', description: 'Описание элемента 2', checked: false}, {id: 3, name: 'Элемент 3', description: 'Описание элемента 3', checked: true}, {id: 4, name: 'Элемент 4', description: 'Описание элемента 4', checked: false}, ]
Michail
Подскажите, что подразумевается под SideEffect в реакт
Dmitry
циклом то я знаю как)
Dmitry
for (let i in services) { if (services[i].id == action.id) { services[i].checked = action.checked; break; } }
Vlad
повтори плиз
Dmitry
Есть массив services: [ {id: 1, name: 'Элемент 1', description: 'Описание элемента 1', checked: false}, {id: 2, name: 'Элемент 2', description: 'Описание элемента 2', checked: false}, {id: 3, name: 'Элемент 3', description: 'Описание элемента 3', checked: true}, {id: 4, name: 'Элемент 4', description: 'Описание элемента 4', checked: false}, ] Я хочу по id менять checked c помощью map
Dmitry
типа того for (let i in services) { if (services[i].id == action.id) { services[i].checked = action.checked; break; } }
Dmitry
services.map(e => ({...e, checked: action.checked})) - эта штука меняет checked у всех
Dmitry
надо как-то в неё условие вставить
Vlad
так запусти проверку внутри мапа
Vlad
через тернарный оператор
Vlad
item.id === 3 ? item.id = action.checked : item
Vlad
или как там у тебя)
Vlad
получилось?) или нет
O1af
item.id === 3 ? item.id = action.checked : item
интересно а памяти много на это нужно... представим что объект с 1000 вложенностью
Vlad
яп
"памяти много нужно" - на какую операцию?
Dmitry
services.map(e => { if (e.id == action.id) { e.checked = action.checked } return e })
Vlad
можно проще
O1af
мапа ...яп=yep
допустим переприсваивание как в примере выше
O1af
можно проще
тернаркой ...да
Vlad
так стоп)
Vlad
тебе нужно вернуть что?)
Alexander
Книга про реак и редакс есть в epub у кого-нибудь, в PDF на телефоне не очень удобно читать
Vlad
services.map(e => e.id == action.id ? e.checked = action.checked : e);
O1af
ed.id==action.ld?e.ch=act.ch вместо ифа
Vlad
вот так можно
Vlad
если в мапе в 1 строчку всё пишешь, то можно без фигурных скобок и без слова return
Dmitry
e.checked = action.checked вернет true
Dmitry
и вернется не элемент а true
Vlad
нет, там ведь присвоение
Vlad
там не сравнивнение
Dmitry
да
Dmitry
и его результат true
Dmitry
хотя это же JS)
Vlad
сейчас проверим)
Dmitry
А, вернется e.checked
Dmitry
а не е