Я новичок в React, и я искал более простой способ установки статуса. Одним из важных примечаний является то, что он был внутри функционального компонента.
const [ personState, setPersonsState ] = useState({
persons: [
{ name : 'Max', age : 28 },
{ name : 'Manu', age : 29 },
{ name : 'Stephanie', age : 26 }
]
});
Я знаю, что обычно это что-то вроде этого, и это прекрасно работает.
setPersonsState({
persons: [
{ name : 'Max', age : 28 },
{ name : 'Ati', age : 29 },
{ name : 'Stephanie', age : 26 }
]
Но я думаю, что каждый раз сложно набирать его вручную, поэтому я попытался упростить свою жизнь.
const newState = personState;
newState.persons[1].name = 'Ati';
setPersonsState(newState)
Это не сработало, и я не не знаю почему. Когда я сохраняю их в console.log, он успешно меняется, но по какой-то причине состояние не обновляется, хотя я использую команду set. Я также заметил странное поведение React: когда я использовал эту команду newState.persons[1].name = 'Ati';
, она также изменила переменную personState
. Таким образом, переменные personState
и newState
выглядели так в консоли.
{persons: Array(3)}
persons: Array(3)
0: {name: "Max", age: 28}
1: {name: "Ati", age: 29}
2: {name: "Stephanie", age: 26}
length: 3
__proto__: Array(0)
__proto__: Object
Буду признателен за любую помощь или объяснение, почему это не работает.