undefined не является объектом this.props.auth от redux - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь перейти к другому экрану при успешном выполнении моей функции аутентификации.Это подход, который я использую, но я получаю undefined is not an object, когда я пытаюсь использовать .then()

Это мой код

login = () => {
    const {username, password} = this.state
    this.props.authentication(username, password).then(res => {

    })
}

const mapDispatchToProps = dispatch => {
    return {
        authentication: (username, password) =>
            dispatch(authenticationLoginEmail(username, password)),
    };
};

Это мой избыточный код

export const authenticationLoginEmail = (username, password) => {
    return dispatch => {
        dispatch(authLoginEmailStart())
        axios.post('url',{username, password})
        .then(res=>{
            console.log(res.data.idusers,'ID USERS');
            ...
            dispatch(authLoginEmailSuccess(idusers, token))
            return res
        })
        .catch(err=>{
            dispatch(authLoginEmailfail(err))
            console.log(err);
        })
    }
}

Ошибка

undefined is not an object (evaluating '_this.props.authentication(username, password).then')

спасибо за помощь

1 Ответ

0 голосов
/ 29 ноября 2018

я думаю, что вы не должны использовать его как обещание

this.props.authentication(username, password).then(res => { })

, если вы хотите получить ответ, вам нужно просто позвонить по нему в своем коде

this.props.authentication(username, password);

И если ваша выборка завершена, вы отправите свой успех или ошибку в состояние избыточности

dispatch(authLoginEmailSuccess(idusers, token)) или dispatch(authLoginEmailfail(err))

, и вы сможете сохранить свое состояние в редукторе изатем вставьте его в свой компонент в mapStateToProps

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...