私はAJAX呼び出しを行うとき、私は、その後の呼び出しから返されたデータと状態を更新する別のアクションオフ発射できるように、私はセットアップにアクションをしようとしている:Reduxの非同期アクション
アクションを。
this.props.teamActions.getUserTeams()
私が得るためgetUserTeams
アクションは罰金をオフに発射:私はそうのようなアクションを呼び出し、私のコンポーネント内の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);
});
}
コンソールログはapiから返されましたが、setUserTeamsState
のように見えません。私は最良の方法でオンラインの例に従おうとしましたが、どこに間違っているのか分からないのですか?
ここでEDIT
は、以下の私の減速である:私は私はので、それは私のsetUserTeamsState
オブジェクトを返しますconsole.log(dispatch(setUserTeamsState(response.data)))
actions.jsであれば
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;
なぜそれが実行されていないのか分かりません。これは正しいアプローチですか?
はあなたを行いますコンソールのエラーを確認しますか?あなたはどんなタイプの例外を受けていますか? – mersocarlin
'SET_USER_TEAMS'が発送されたときに減速機が呼び出されていますか? – topher
あなたは初期状態の配列としてuserTeamsを設定していますが、レデューサー呼び出しではObjectを新しい状態として返すように見えます。 –