Как отключить звук в реактиве?
У меня возникла проблема в управлении состоянием реагирования. Каждый загруженный компонент загружает данные из кэша. Я провел исследование по этому вопросу и обнаружил, что это состояние является неизменным. Я хочу спросить, как использовать иммутирование состояния. В настоящее время это похоже на то, что я взял пустой массив в состоянии в конструкторе, затем я вызвал api in компонент, который будет монтировать и устанавливать это состояние в ответ, но до тех пор, пока Indont не очистит кэш, состояние не показывает данные
Укажи мне, где я здесь делаю ошибку, или как я могу имитировать состояние
1 ответ
Мутирование объекта: используйте Object.assign({}, ...)
var yourCar = {
color: 'red',
.. the same as neighboursCar
};
var neighboursCar = {
color: 'red',
... the same as yourCar
};
yourCar.color = 'blue'; // reference stays the same!
var yourCarRepainted = Object.assign({}, yourCar, { color: 'blue' });
yourCarRepainted === yourCar; // false
Отключение массива: используйте [].concat
var list = [1, 2, 3];
var list = [1, 2, 3];
list[1] = 4;
var list = [1, 2, 3];
var changedList = [].concat(list);
changedList[1] = 4;
var list = [1, 2, 3];
var changedList = [].concat(list);
changedList[1] = 2;
list === changedList; // false
this.state и this.setState({}) в React уже неизменны.
Вы также можете попробовать стороннюю библиотеку immutable.js, чтобы лучше понять эту тему.