Простой пример с запросом:
export function* fetchPostBySlugSaga({ payload: { slug } }) {
try {
const data = yield call(Api.fetchPostBySlug, slug);
yield put(fetchPostBySlugSucceeded(data));
} catch (error) {
yield put(fetchPostBySlugFailed(error));
}
}
export default function* watchFetchPostBySlugSaga() {
yield takeLatest(FETCH_POST_BY_SLUG, fetchPostBySlugSaga);
}
Действия:
export function fetchPostBySlug(slug) {
return {
type: FETCH_POST_BY_SLUG,
payload: {
slug,
},
};
}
export function fetchPostBySlugSucceeded(data) {
return {
type: FETCH_POST_BY_SLUG_SUCCEEDED,
payload: {
data,
},
};
}
export function fetchPostBySlugFailded(error) {
return {
type: FETCH_POST_BY_SLUG_FAILED,
payload: {
error,
},
};
}