Api.fetchUser
などのデータを渡すための正しい方法は、APIのAJAX呼び出しを実行する必要があり、それは約束を返すべき関数であり、把握しようとしています。
あなたの場合、この約束はユーザーデータ変数を解決するはずです。例えば
:
function* fetchUserSaga(action) {
// `call` function accepts rest arguments, which will be passed to `api.fetchUser` function.
// Instructing middleware to call promise, it resolved value will be assigned to `userData` variable
const userData = yield call(api.fetchUser, action.userId);
// Instructing middleware to dispatch corresponding action.
yield put({
type: 'FETCH_USER_SUCCESS',
userData
});
}
call
、put
が効果クリエーター関数である:
// services/api.js
export function fetchUser(userId) {
// `axios` function returns promise, you can use any ajax lib, which can
// return promise, or wrap in promise ajax call
return axios.get('/api/user/' + userId);
};
次にサーガあります。彼らはGET
またはPOST
要求に精通した何かを持っていません。
call
ミドルウェアに約束を呼び出すように指示する効果記述を作成するために関数を使用します。 put
関数は、ストアにアクションをディスパッチするミドルウェアに指示するエフェクトを作成します。
これは本当に良い説明です、ありがとうございます! – Ilja
は 試し{ のconstのuserData = .....歩留まり... }キャッチ(電子){ 降伏プット({ タイプ: 'FETCH_USER_FAILED' を})errorhandeling覚えておいてください。 } –