React Redux动作(函数内的函数)

问题描述 投票:0回答:1

我对react-redux很新,我在这个问题上遇到了很多困难。我在我的动作创建者中有这些功能。

function register(user) {    
    function request(user) { return { type: userConstants.REGISTER_REQUEST, user } }
    function success(user) { return { type: userConstants.REGISTER_SUCCESS, user } }
    function failure(error) { return { type: userConstants.REGISTER_FAILURE, error } }
}

这就是我试图发送它的方式。

const mapDispatchToProps = dispatch => {
    return {
        sendRegistration: (user) => {
            dispatch(userActions.register(user).request(user))
        }
    }
}

当用户单击提交按钮时,调度发生如下:

this.props.sendRegistration(this.state.user)

但是我收到以下错误。

未捕获的TypeError:无法读取未定义的属性“请求”

reactjs redux dispatch
1个回答
0
投票

你应该在你的register函数中返回它们,就像这样

function register(user) {    
    function request(user) { return { type: userConstants.REGISTER_REQUEST, user } }
    function success(user) { return { type: userConstants.REGISTER_SUCCESS, user } }
    function failure(error) { return { type: userConstants.REGISTER_FAILURE, error } }
    return {
      request : request,
      success : success,
      failure : failure
    }
}

但是通常你不需要将它们包装在一个函数中。您可以导出和导入它们,例如

function request(user) { return { type: userConstants.REGISTER_REQUEST, user } }
    function success(user) { return { type: userConstants.REGISTER_SUCCESS, user } }
    function failure(error) { return { type: userConstants.REGISTER_FAILURE, error } }

export {request, success, failure}
© www.soinside.com 2019 - 2024. All rights reserved.