У меня в массиве store / index.js есть наблюдаемый массив, подобный этому:
class Store {
@observable order = [];
fetchData = flow(function*() {
try {
const myData = yield backendService.retrieveData();
if (myData.length > 0) {
this.order = myData.map(element => {
return element.id;
});
}
} catch (error) { // error handling }
});
...
}
Я использую этот наблюдаемый массив в компоненте, чтобы сравнить его с другим массивом. Если они не совпадают, я обновлю наблюдаемый массив с помощью действия.
export default
@inject('store')
@observer
class myComponent extends React.Component {
...
_closeModal() {
const newOrder = this.state.data.map(element => {
return element.id;
});
if (toJS(store.order) !== newOrder) {
store.updateOrder(newOrder);
}
}
}
Однако результат сравнения двух массивов неверен, даже если я не внесу никаких изменений, toJS(store.order) !== newOrder
все равно вернет true. Я не знаю, что я делаю неправильно, но когда я консоль регистрирую два массива, они возвращают абсолютно одинаковое содержимое.