Как отключить звук в реактиве? - PullRequest
0 голосов
/ 02 мая 2018

У меня возникла проблема в управлении состоянием реагирования. Каждый загруженный компонент загружает данные из кэша. Я провел исследование и обнаружил, что это состояние является неизменным. Я хочу спросить, как использовать иммутирование состояния. В настоящее время это похоже на то, что я взял пустой массив в состоянии в конструкторе, затем я вызвал api in компонент, который будет монтировать и устанавливать это состояние как ответный, но до тех пор, пока Indont не очистит кэш, состояние не показывает данные

Укажи мне, где я здесь делаю ошибку, или как я могу имитировать состояние

1 Ответ

0 голосов
/ 02 мая 2018

Изменение объекта: используйте 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, чтобы лучше понять эту тему.

...