【问题标题】:In MERN STACK in redux toolkit .Received NaN for the `children` attribute. If this is expected, cast the value to a string在 redux 工具包的 MERN STACK 中。收到的 `children` 属性的 NaN。如果这是预期的,请将值转换为字符串
【发布时间】:2022-10-07 02:21:01
【问题描述】:

当我从购物车中删除产品时,我收到\“收到 children 属性的 NaN。如果这是预期的,请将值转换为字符串\”

另请检查为什么此注释行代码不起作用

// state.total += action.payload.price * action.payload.quantity;

这是添加到购物车和从购物车中删除的功能。

import { createSlice } from \"@reduxjs/toolkit\";

const cartSlice = createSlice({
  name: \"cart\",
  initialState: {
    products: [],
    quantity: 0,
    total: 0,
  },
  reducers: {
    addProduct: (state, action) => {
      state.quantity += 1;
      state.products.push(action.payload);
    //   state.total += action.payload.price * action.payload.quantity;
    },
    removeProduct: (state, action) => {
        let index = state.products.indexOf(action.payload)
        state.quantity -= action.payload
        state.products.splice(index, 1)
    }
  },
});

export const { addProduct ,removeProduct} = cartSlice.actions;
export default cartSlice.reducer;

这是反应应用程序中的 redux 商店

import { configureStore, combineReducers } from \"@reduxjs/toolkit\";
import cartReducer from \"../features/cartSlice\";
import userReducer from \"../features/UserSlice\";
import {
  persistStore,
  persistReducer,
  FLUSH,
  REHYDRATE,
  PAUSE,
  PERSIST,
  PURGE,
  REGISTER,
} from \"redux-persist\";
import storage from \"redux-persist/lib/storage\";

const persistConfig = {
  key: \"root\",
  version: 1,
  storage,
};

const rootReducer = combineReducers({ user: userReducer, cart: cartReducer });

const persistedReducer = persistReducer(persistConfig, rootReducer);

export const store = configureStore({
  reducer: persistedReducer,
  middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware({
      serializableCheck: {
        ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
      },
    }),
});

export let persistor = persistStore(store);

  • action.payload.priceaction.payload.quantitynullundefined。请显示您如何拨打addProduct
  • const addtocart=()=>{ disaptch(addProduct()) }
  • 我很确定addProduct 应该接受争论
  • 是 action.payload.quantity 为空。我该如何解决
  • 调用addProduct,参数是您要传递的数据,例如{ price: 3, quantity: 7 }

标签: reactjs redux mern


【解决方案1】:

上面评论的兄弟是写。我只是在const addtocart=()=>{ disaptch(addProduct(product) }中传递cart quantity并且它有效

这里product是购物车中的产品数量,如下

 const product = useSelector((state) => state.cart.quantity)

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 2021-06-30
  • 1970-01-01
相关资源
最近更新 更多