在Redux Toolkit中使用for循环时出现问题



大家好,我在管理服务器回调中的数据时遇到了问题,这是我第一次使用Redux ToolKit,所以在这里;这是代码吗

builder.addCase(FetchAllExpenses.pending , (state , action)=>{
state.situition = 'loading';
// console.log(state.situition);
}).addCase(FetchAllExpenses.fulfilled , (state , action)=>{
const DataArray = [] ;              
expensesState = action.payload ;
for(let key in state.expensesState){
DataArray.push(new Expenses(key , state.expensesState[key].date , state.expensesState[key].source , state.expensesState[key].money , state.expensesState[key].Description , state.expensesState[key].month , state.expensesState[key].year))
};
state.expensesState = DataArray ;

console.log(state.expensesState , 'after filitering');
state.reload = true ;
state.errorHappen = 'no error';
state.situition = `done`;
})

以及结果

阵列[费用{"描述":"Bahacssh";,"日期":"2021年11月30日星期二18:58:17 GMT+0800(CST(";,"id":&quot-MplYx54OqGKcLjbX74g";,"货币":"45484648〃;,"月份":10,"源":"Medical";,"年份":2021年,},费用{"描述":"Vahac";,"日期":"2021年11月30日星期二18:58:25 GMT+0800(CST(";,"id":&quot-MplYz1NKqBZY1dp3Kgk";,"货币":"645495〃;,"月份":10,"源":"运输";,"年份":2021年,},]干扰后

SerializableStateInvariantMiddleware花费了108ms,这超过了32ms的警告阈值。如果您的状态或操作非常大,您可能需要禁用中间件,因为它可能会导致开发模式过于缓慢。看见https://redux-toolkit.js.org/api/getDefaultMiddleware以获取说明。它在生产版本中被禁用,所以您不需要担心这一点。在warnIfExceeded中的node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js:217:16在node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js:456:12在node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js:374:39位于__generator$argument_1中的node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js:1204:44步骤中的node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js:38:17在node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js:19:56在node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js:97:21中完成

谢谢大家。。。。。。。。。。

Redux的核心使用原则之一是不应将不可序列化的值放入状态或操作中。

避免将不可序列化的值(如Promises、Symbols、Maps/Sets、函数或类实例(放入Redux存储状态或调度的操作中。这确保了通过Redux DevTools进行调试等功能将按预期工作。它还确保UI将按预期进行更新。

如果您坚持使用它,请参阅使用不可串行化数据

但在您的案例中,我认为没有必要使用非序列化数据(new Expenses()(。只使用JavaScript普通对象就足够了。

相关内容

  • 没有找到相关文章

最新更新