【发布时间】:2018-06-25 22:36:10
【问题描述】:
我是 Redux 和 React Native 的新手,如果我犯了明显的错误,我深表歉意。
在了解我遇到的错误之前,这里有一些背景知识。
我有一个状态和一个数据库(SQLite)。我有一个实例,我需要擦除状态并从数据库中重新填充状态。我已经收集并解析了数据库中的数据,只需将其添加到状态中即可。
细节:我在数据库中有一个对象列表(我们会说汽车),每个对象都有自己的属性。我创建了一个汽车清单并通过了它。收到后,我创建了一个“假状态”(它只是空的初始状态)并通过添加汽车列表来改变它,因为我知道你不应该改变实际状态。
然后我尝试使用 new cars 属性返回状态。
我收到一条错误消息:TypeError:assign 的来源之一在原型链上有一个可枚举的键。您是否尝试分配原型属性?我们不允许这样做,因为这是我们不支持的极端情况。此错误是性能优化,不符合规范。
我是否理解这是说我不能像我想要的那样分配一个 redux 状态属性?
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;
}
};
【问题讨论】:
标签: react-native redux