redux TypeError:state.products.find不是函数或其返回值不可迭代

af7jpaap  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(102)
import { ActionType } from "../costants/action-type";

const initialState = {
    products : [],
}

export const productReducer = (state = initialState, {type,payload}) => {

    console.log("DEC",payload)
    console.log("state",state.products)

    switch (type) {
        case ActionType.SET_PRODUCTS:
            return {state , 
                products: [...state.products.find(product => product.API === payload.API)],
            };
            default:
                return state;
            }
        }

The screenshot for my error

mwyxok5s

mwyxok5s1#

您应该使用map(传回清单),而不是find(传回单一对象)。
您还应该指定像{...state }这样的状态,以保留所有当前状态值。

import { ActionType } from "../costants/action-type";

const initialState = {
    products : [],
}

export const productReducer = (state = initialState, {type,payload}) => {

    console.log("DEC",payload)
    console.log("state",state.products)

    switch (type) {
        case ActionType.SET_PRODUCTS:
            return {
                ...state, 
                products: [...state.products.map(product => product.API === payload.API)],
            };
            default:
                return state;
            }
        }

相关问题