0
아무도 여기에 redux-saga로 앱을 북마크하는 예가 있습니까? 나는이 하나를 가지고 있지만, 유일한 REDUX-썽크에 대한 ->https://github.com/KeerthiHarish/Bookmarks-Web-UIredux-saga로 북마크를 추가하는 방법
아무도 여기에 redux-saga로 앱을 북마크하는 예가 있습니까? 나는이 하나를 가지고 있지만, 유일한 REDUX-썽크에 대한 ->https://github.com/KeerthiHarish/Bookmarks-Web-UIredux-saga로 북마크를 추가하는 방법
귀하의 /actions/index.js 파일 :
export function fetchBookmarks() {
return { type: "FETCHING_BOOKMARKS" }
}
export function fetchBookmarksFulfilled(payload) {
return { type: "FETCH_BOOKMARKS_FULFILLED", payload }
}
export function fetchBookmarksRejected(payload) {
return { type: "FETCH_BOOKMARKS_REJECTED", payload }
}
export function createBookmark() {
return { type: "CREATING_BOOKMARKS" }
}
export function createBookmarkFulfilled(payload) {
return { type: "CREATE_BOOKMARKS_FULFILLED", payload }
}
export function createBookmarkRejected(payload) {
return { type: "CREATE_BOOKMARKS_REJECTED", payload }
}
export function deleteBookmark() {
return { type: "DELETING_BOOKMARKS" }
}
export function deleteBookmarkFulfilled(payload) {
return { type: "DELETE_BOOKMARKS_FULFILLED", payload }
}
export function deleteBookmarkRejected(payload) {
return { type: "DELETE_BOOKMARKS_REJECTED", payload }
}
export function associateBookmark() {
return { type: "ASSOCIATING_BOOKMARK_FOLDER" }
}
export function associateBookmarkFulfilled(payload) {
return { type: "ASSOCIATE_BOOKMARK_FOLDER_FULFILLED", payload }
}
export function associateBookmarkRejected(payload) {
return { type: "ASSOCIATE_BOOKMARK_FOLDER_REJECTED", payload }
}
당신의 /sagas/index.js 파일 :
import axios from 'axios';
import { all, call, put, take } from 'redux-saga/effects';
import {
fetchBookmarksFulfilled,
fetchBookmarksRejected,
// the rest actions
}
export default function* rootSaga() {
yield all([
call(fetchBookmarksSaga),
call(createBookmarksSaga),
call(deleteBookmarksSaga),
call(associateBookmarksSaga),
])
}
function* fetchBookmarksSaga() {
while (true) {
try {
yield take("FETCHING_BOOKMARKS")
const response = yield call(axios.get, "https://bookmarks-rest-api.herokuapp.com/bookmarks")
yield put(fetchBookmarksFulfilled(response.data))
} catch (error) {
yield put(fetchBookmarksRejected(error))
}
}
}
// likewise create, delete and associate sagas
:
import createSagaMiddleware from 'redux-saga'
import rootSaga from './sagas'
sagaMiddleware = createSagaMiddleware()
store = createStore(reducers, persistedState, applyMiddleware(sagaMiddleware));
sagaMiddleware.run(rootSaga)