捕获块上的调度功能的行为

时间:2018-10-24 23:51:14

标签: javascript reactjs redux react-redux redux-thunk

我在我的应用程序上构建了一个登录系统,但发现调度功能的行为异常。

我在Redux,Redux-Thunk和Redux-Form上使用React。 在我的actions / index.js文件上,在发出axios请求后,当我使用.then()。catch()语法时,调度功能可以正常工作,但是当我更改为async / await语法时,第二个调度就无法工作不再工作了。我尝试在网上找到解释,但没有发现任何可以解决我问题的方法。有人知道为什么会这样吗?

完美运行的版本:

export const submitLoginForm = values => dispatch => {
axios.post(
        '/auth/local/login',
        qs.stringify({
            email: values.email,
            password: values.password
        })
    )
    .then(res => {
        dispatch({ type: FETCH_USER, payload: res.data });
    })
    .catch(err => {
        dispatch(
            stopSubmit('enterpriseLogin', {
                _error: 'Error description...'
            })
        );
    });
}

第二次派遣无效的版本:

export const submitLoginForm = values => async dispatch => {
try {
    const res = await axios.post(
        '/auth/local/login',
        qs.stringify({
            email: values.email,
            password: values.password
        })
    );
    dispatch({ type: FETCH_USER, payload: res.data });
} catch (err) {
    //Doesnt Work !!
    dispatch(
        stopSubmit('enterpriseLogin', {
            _error: 'Error description...'
        })
    );
}
}

0 个答案:

没有答案