Вам необходимо создать асинхронное действие. Вы можете отправлять различные действия внутри асинхронного действия в зависимости от того, разрешена или отклонена внутри них асинхронная функция.
export function getPlacesOnMap(token) {
return async function(dispatch) {
dispatch({
type: "FETCHING_PLACES_PENDING"
});
fetch("myApp?auth=" + token)
.then(res => {
dispatch({
type: "FETCHING_PLACES_FULFILLED",
payload: res.json()
});
})
.catch(error => {
dispatch({
type: "FETCHING_PLACES_REJECTED",
payload: error
});
});
};
}
Если ваша функция authGetToken () также является обещанием, вам необходимо отправить это действие после разрешения authGetToken ().
Вы можете использовать action.payload в вашем случае "FETCHING_PLACES_FULFILLED" ваших редукторов, чтобы иметь возможность использовать извлеченные данные.
UPDATE
Ваш редуктор должен быть таким:
export default function reducer(
state = {
loadingMarkers : false,
markers : [],
error : null,
},
action
) {
switch (action.type) {
case "FETCHING_PLACES_PENDING":
return { ...state, loadingMarkers: true };
case "FETCHING_PLACES_FULFILLED":
return { ...state, loadingMarkers: false, markers: action.payload};
case "FETCHING_PLACES_REJECTED":
return { ...state, loadingMarkers: false, error: action.payload };
default:
return state;
}
}
Теперь вы можете подключить свой компонент к приставке и использовать маркеры при их получении.
посмотрите на этот пример и подключите документы