动作必须是redux中的普通对象

时间:2018-04-03 15:48:50

标签: reactjs react-native redux

我有一种感觉,我在这里错误地使用mapToDispatchProps

function mapDispatchToProps(dispatch) {
    return {
        resetLoginForm() {
            dispatch(reset("login"))
        },
        resetLoginFailState() {
            dispatch(resetLoginFailed);
        }
    }
}

它正在为resetLoginForm工作,这意味着,我可以正常访问this.props.resetLoginForm()。但是当我添加resetLoginFailState时,调用操作时出现错误:Actions must be plain objects

实际操作确实会返回一个普通对象,因此我不确定问题是什么:

export const resetLoginFailed = () => {
    return { type: RESET_LOGIN_FAILED }
};

2 个答案:

答案 0 :(得分:1)

resetLoginFailState() {
   dispatch(resetLoginFailed);
}

你正在派遣一个职能 - 字面意思。您忘记执行它以发送 redux操作

resetLoginFailState() {
   dispatch(resetLoginFailed());
}

答案 1 :(得分:1)

  

动作必须是普通对象,为什么?

因为你传递了一个函数来调度,你需要调用那个函数,然后才会返回该对象。

像这样写:

resetLoginFailState() {
    dispatch(resetLoginFailed());        // notice ()
}