使用回调与动作创建者

时间:2017-11-21 17:49:33

标签: javascript reactjs callback redux axios

我在完成后发出POST请求我想使用回调将用户重定向到新页面。下面是我的onSubmit处理程序。

 onSubmit(values) {
        console.log('before action');
        this.props.createPost(values, () => {
            console.log('callback fired');
            this.props.history.push('/someotherpage');
        });
    }

这是我的动作创作者。

export function createPost(values, callback) {
    const request = axios.post(`/api/create_post`, values)
        .then(() => callback());

    return {
        type: CREATE_POST,
        payload: request
    };
}

我期待回调将我重定向到另一个页面,但它没有这样做。数据确实被发送到数据库,但回调不会触发。

1 个答案:

答案 0 :(得分:1)

根据您在评论中添加的错误消息,您的HTTP调用失败,并且拒绝承诺。因此,永远不会调用.then()处理程序。

通过.catch()处理程序添加错误处理,您应该能够处理(失败的)调用结果。