У меня следующее состояние.
state = {
friends: {
nickNames: ['Polly', 'P', 'Pau'],
... here more k:v
},
}
}
И я хочу обновить массив nickNames значением, полученным из неконтролируемой формы через метод в моем классе. Тем не менее, у меня возникают проблемы во время определения, правильно ли я устанавливаю состояние, не изменяя его.
Я делаю следующее
updateArray = (nickName) => {
const tempDeepCopy = {
...this.state,
friends: {
...this.state.friends,
nickNames: [...this.state.friends.nickNames]
}
}
tempDeepCopy.friends.nickNames.push(nickName)
this.setState({
friends:
{
nickNames: tempDeepCopy.friends.nickNames
}
})
}
Это правильный способ сделатьЭто? Если да, то является ли это также наиболее эффективным, учитывая состояние? Я стараюсь избегать вспомогательных библиотек, чтобы научиться делать глубокие копии.
Я буду признателен за помощь, поскольку я пытаюсь научиться неизменности, и эта концепция требует от меня много усилий.