Реагировать на действие Redux (функция внутри функции) - PullRequest
0 голосов
/ 26 декабря 2018

Я довольно новичок в реакции-редуксе и много борюсь с этой проблемой.У меня есть эти функции в моем создателе действий.

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)

Но я получаю следующую ошибку:

Uncaught TypeError: Невозможно прочитать свойство 'request' из неопределенного

1 Ответ

0 голосов
/ 26 декабря 2018

Вы должны были вернуть их в вашей функции 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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...