Reactjs (Redux)未捕获的TypeError:对象(…)不是函数

Reactjs (Redux)未捕获的TypeError:对象(…)不是函数,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我想采取行动,所以我把急件发错了。但我正因为这个错误而挣扎 我写的代码是为了放入许多变量,这是错误的方法吗 //reducer export const signUpEmail = email => ({ type: SIGNUP_EMAIL, email, }); export const signUpInput = ({name, nickname, id, password}) => ({ type: SIGNUP_INPUT, data: {

我想采取行动,所以我把急件发错了。但我正因为这个错误而挣扎

我写的代码是为了放入许多变量,这是错误的方法吗

//reducer
export const signUpEmail = email => ({
    type: SIGNUP_EMAIL,
    email,
});

export const signUpInput = ({name, nickname, id, password}) => ({
    type: SIGNUP_INPUT,
    data: {
        name: name,
        nickname: nickname,
        id: id,
        password: password,
    },
});

export const signUpImg = img => ({
    type: SIGNUP_IMG,
    img,
});

const signUpState = {
    email: '',
    data: {
        name: '',
        nickname: '',
        id: '',
        password: '',
    },
    img: '',
};

export const signUpReducer = (state = signUpState, action) => {
    switch (action.type) {
        case SIGNUP_EMAIL:
            return ({ ...state, email: action.email });
        case SIGNUP_INPUT:
            return ({
                ...state,
                data: {
                    name: action.name,
                    nickname: action.nickname,
                    id: action.id,
                    password: action.password
                },
            });
        case SIGNUP_IMG:
            return ({
                ...state,
                img: action.img,
            });
        default: return state;
    }
};
 

这是减速机

//selector  
const {userEmail, name, nickname, id, password, userImg } = useSelector(state => ({
        userEmail: state.email,
            userName: state.name,
            userNickname: state.nickname,
            userId: state.id,
            userPassword: state.password,
        userImg: state.img
    }));


这是存储的状态连接

//dispatch 
    const userData = ({userName, userNickname, userId, userPassword}) => {
        dispatch(signUpInput({userName, userNickname, userId, userPassword}));
    }


问题出在哪里?

确保正确访问对象子对象:
状态。昵称
应为
状态。数据。昵称
操作。昵称
应为
操作。数据。昵称
,等等


另外,请尝试重构减速器,并根据当前状态的形状将其拆分为不同的部分。例如,
state.data
state.email
state.img
可能希望有自己的缩减器,您可以使用
combinereducer
将它们合并为一个缩减器。现在有点乱。

谢谢,但还是有个错误。此错误不是您回答的地方。action creater似乎有问题。