Пожалуйста, не определяйте getState
, если вы не планируете его использовать:
const getAnimalsList = () => (dispatch, getState) => {
axios.request({url: 'api.domain.com/animals'}).then(
res => dispatch({type: 'RESPONSE RECEIVED', data: res}),
err => dispatch({type: 'ERROR', err})
);
}
А также используйте синтаксис async/await
, более понятный для вас относительно того, что происходит:
export const getAnimalsList = () => async dispatch => {
const response = await jsonAnimals.get("/animals");
dispatch({ type: "RESPONSE_RECEIVED", payload: response.data });
};
Затем создайте папку / файловую систему следующим образом: apis/jsonAnimals.js
:
Поместите туда свой код Axios:
import axios from 'axios';
export default axios.create({
baseURL: 'http://api.domain.com'
});
Хорошо, теперь у вас естькрасивое чистое приложение Redux, облегчающее работу глаз, облегчающее отладку.
Теперь, если вы хотите протестировать его в консоли, вы можете сделать
export const testGetAnimalsList = () => async (dispatch, getState) => {
await dispatch(getAnimalsList());
console.log(getState().animals);
};
export const getAnimalsList = () => async dispatch => {
const response = await jsonAnimals.get("/animals");
dispatch({ type: "RESPONSE_RECEIVED", payload: response.data });
};