Невозможно выполнить Callback в Redux Thunk после Axios.post и отправки действия

Я написал редукционный thunk, чтобы после отправки запроса на API-интерфейс отправлялось действие и выполнялся обратный вызов:

import actionTypes from '../actions/actionTypes';
import axios from 'axios';

function postThunk(someValue, callback) {
 return dispatch => {
    try {
        let token = localStorage.getItem('token');
        const credentials = {
            headers: {
                "Authorization" : 'Bearer '+ token,
              },
            };
        const data = {
            someValue
        }
        axios.post('http://myAPI',data, credentials).then(result =>{
            dispatch({
                type: actionTypes.MY_ACTION,
                data: result,
            })
        });
        callback();
    } catch (error) {
        console.log(error);
    }
}
}

export{
 postThunk
};

Обратный вызов, когда я вызываю Thunk на самом деле тогда просто this.props.history.push(/somelocation), Так как написано выше, это работает, но я на самом деле хочу, чтобы обратный вызов был внутри цепочки обещаний axios.post, потому что перенаправление должно происходить только после запроса POST. Однако, если я изменю код на это:

            axios.post('http://myAPI',data, credentials).then(result =>{
            dispatch({
                type: actionTypes.MY_ACTION,
                data: result,
            });
            callback();
        });

Почему-то это больше не работает. Запрос POST происходит, и БД обновляется, но вместо перенаправления той же страницы происходит жесткая перезагрузка, что также затрудняет отладку, потому что я действительно не вижу, что происходит. Кто-нибудь есть идея, что мне нужно следить, это отправка выдает ошибку, или мне нужно промежуточное программное обеспечение с избыточным обещанием в этой точке??

0 ответов

Другие вопросы по тегам