0

获取TypeError:当我在 React Redux 的操作文件中使用 getState 时,getState 不是函数错误。请在下面找到 action、reducer、store 和 Cart 组件的代码。

//action
export const removeFromCart=(product)=>(dispatch,getState)=>{
    const cartItems = getState().cart.cartItems.slice();
    cartItems.filter(x=>x._id !== product._id )
    dispatch({
        type:REMOVE_FROM_CART,
        payload : {cartItems}
    });
localStorage.setItem("cartItems",JSON.stringify(cartItems));
}

//reducer
export const cartReducer=(state={cartItems : JSON.parse(localStorage.getItem("cartItems") || "[]")}
,action)=>{
    switch (action.type){
        case ADD_TO_CART: 
        return {cartItems:action.payload.cartItems};
        case REMOVE_FROM_CART:
        return {cartItems:action.payload.cartItems};
      default: return state;
    }

};
//store

const initialState = {};
const composeEnhancer= window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(combineReducers({
    products:productsReducer,
    cart: cartReducer
}),initialState,
composeEnhancer(applyMiddleware(thunk))
);
export default store;

//in cart component
export default connect((state)=>({
    cartItems:state.cart.cartItems,
}), removeFromCart)(Cart);

完整的错误信息:

Function.mapToProps
C:/Training/shopping-cart/src/actions/cartAction.js:23
  20 |   localStorage.setItem("cartItems",JSON.stringify(cartItems));
  21 | }
  22 | export const removeFromCart=(product)=>(dispatch,getState)=>{
> 23 |     const cartItems = getState().cart.cartItems.slice();
  24 |     cartItems.filter(x=>x._id !== product._id )
  25 |     dispatch({
  26 |         type:REMOVE_FROM_CART,```
4

0 回答 0