Я новичок в Redux и React Native, поэтому приношу свои извинения за очевидную ошибку.
Вот немного предыстории, прежде чем я доберусь до ошибки, с которой сталкиваюсь.
У меня есть состояние и база данных (SQLite).У меня есть экземпляр, в котором мне нужно стереть состояние и снова заполнить состояние из базы данных.Я уже собрал и проанализировал данные из базы данных, и мне просто нужно добавить их в состояние.
Особенности: У меня есть список объектов (скажем, автомобилей) в базе данных, каждый со своимисобственные свойства.Я создал список автомобилей и передал это.После получения я создаю «поддельное состояние» (которое является просто пустым начальным состоянием) и изменяю его, добавляя в список автомобилей, поскольку я знаю, что вы не должны изменять текущее состояние.
Затем я пытаюсьчтобы вернуть состояние со свойством new cars.
Я получаю сообщение об ошибке: TypeError: Один из источников для assign имеет перечисляемый ключ в цепочке прототипов.Вы пытаетесь назначить свойство прототипа?Мы этого не допустим, так как это крайний случай, который мы не поддерживаем.Эта ошибка является оптимизацией производительности и не соответствует спецификации.
Я понимаю, что могу сказать, что не могу назначить свойство состояния избыточности, как я пытаюсь?
const initialState = {
cars: [],
selectedDevice: null,
};
const getNewCarList = async (previousState) => {
const carList = await DBProvider.callQueryDB();
const carListLength = carList.length;
let newState = previousState;
for (let i = 0; i < carListLength; i += 1) {
newState = {
...newState,
cars: newState.car.concat({
carName: carList[i].carName,
carID: carList[i].carID,
}),
};
}
return newState;
};
const refreshStore = async (state = initialState, action) => {
switch (action.type) {
case REFRESH_STORE: {
const newCarState = await getNewCarList(initialState).then(newState => newState);
return {
...state,
car: newCarState.cars,
};
}
default:
return state;
}
};