获取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,```