Je suis en train de configurer une action pour que quand je fais un appel AJAX Je peux alors déclencher une autre action qui met à jour l'état avec les données renvoyées par l'appel:actions Redux Async
actions. js
import axios from 'axios';
export const setUserTeamsState = (teams) => {
return {
type:'SET_USER_TEAMS',
teams:teams
}
}
export const getUserTeams = (dispatch) => {
return axios.get('http://localhost:7777/getteams')
.then((response) => {
console.log(response.data)
dispatch(setUserTeamsState(response.data))
})
.catch((error) => {
//console.log(error);
});
}
dans mon élément, je prends l'action comme si:
this.props.teamActions.getUserTeams()
l'action getUserTeams
tire de bien parce que je reçois le journal de la console est revenu de l'API mais le setUserTeamsState
ne semble pas. J'ai essayé de suivre les exemples en ligne du mieux que je peux mais je ne sais pas où je me suis trompé?
EDIT
Voici mon réducteur ci-dessous:
Reducer.js
const initialState = {
userTeams: []
};
const manageTeamsReducer = (state = initialState, action) => {
switch (action.type) {
case 'SET_USER_TEAMS': {
const newState = Object.assign(state, {
userTeams:action.teams
});
return newState;
}
default:
return state;
}
}
export default manageTeamsReducer;
si je actions.js console.log(dispatch(setUserTeamsState(response.data)))
retourne l'objet mon setUserTeamsState
donc je suis Je ne sais pas pourquoi il ne s'exécute pas. Est-ce la bonne approche pour commencer?
-vous voir des erreurs sur la console? Obtiens-tu un type d'exception? – mersocarlin
Votre réducteur est-il appelé lorsque SET_USER_TEAMS est distribué? – topher
Il semble que vous définissiez userTeams en tant que tableau dans l'état initial, mais en retournant Object et en tant que nouvel état dans l'appel du réducteur .... –