首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用redux-saga添加书签

如何使用redux-saga添加书签
EN

Stack Overflow用户
提问于 2017-10-09 15:30:05
回答 1查看 161关注 0票数 0

这里有谁有一个带有redux-saga的书签示例应用吗?我用过这个,但它只用于redux-thunk -> https://github.com/KeerthiHarish/Bookmarks-Web-UI

EN

回答 1

Stack Overflow用户

发布于 2017-10-10 00:33:21

您的/actions/index.js文件:

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
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

在您的App.js中:

代码语言:javascript
复制
import createSagaMiddleware from 'redux-saga'
import rootSaga from './sagas'

sagaMiddleware = createSagaMiddleware()
store = createStore(reducers, persistedState, applyMiddleware(sagaMiddleware));
sagaMiddleware.run(rootSaga)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46640913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档