J'ai ce problème lorsque j'essaie d'invoquer une fonction de rappel après la résolution de la promesse (en utilisant .then). demande une sorte de promesse différente que le réducteur renvoie comme indéfinie :
action :
export function lookup(company, callback) {
const id = company.textfield;
const url = `${ROOT_URL}${id}`;
const request = axios.get(url)
.then(() => callback())
return {
type: LOOK_UP,
payload: request,
meta: id
};
}
réducteur :
import { LOOK_UP } from '../actions/index';
export default function(state = {}, action) {
switch (action.type) {
case LOOK_UP:
const data = action.payload.data;
const id = action.meta;
if (data.Success === true) {
return { ...state, [id]: data.CompanyInformation };
} else {
return state;
}
}
return state;
}
Comme vous pouvez le voir, je passe les données de l'API que axios obtient à mon reducer. Après cela, j'ai défini l'état et j'ai besoin d'invoquer ce callback qui est dans 'actions' (il crée alors un autre appel d'action dans le composant). Malheureusement, j'ai obtenu l'erreur que dans le réducteur const data = action.payload.data est indéfinie.
Lorsque je n'utilise pas ce callback, tout fonctionne bien, mais le cas est que je dois invoquer ce callback seulement après que ce réducteur renvoie un nouvel état.