169 похожих чатов

.Concat() создаёт поверхностную копию и тем самым Стейт изменяется ещё

до вызова setState, так что смысла в нем никакого нет.

Я не нашел другого выхода, как написать:
onChangeName(name, index) {
const users = JSON.parse(JSON.stringify(this.state.users))
users[index].name = name
this.setState({users})
}
И что, все таким же образом меняют state?))

3 ответов

3 просмотра

Какую копию делать - поверхностную, полную или вообще никакую - надо на тип данных смотреть, если массивы и объекты - то полную копию делаем. JSON.parse криво работает со сложными типами данных и порядок свойства не гарантирован. Для глубокого копирования юзают _.cloneDeep из lodash или сами пишут функцию

Пздц, индексы

Примерно да, но через деструктуризацию users: { ...this.state.users, [index]: { ...this.state.users[index], name }, } Или используют всякие immerjs и immutablejs

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

Обсуждают сегодня

@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
Короче я тут узнал полный пиздец Что кучу постов которые я создавал через posted Спустя время не могу редактировать и менять Мол телега возвращае ошибку Это реально так ...
inc.
13
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
что читать по делфи?вообще 0 в нем
fd dsds
9
const dirname = new URL((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new UR...
Kirill Shaplyko
4
how would you do any of that offline?
Thomas
7
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
Карта сайта