Redux 中 Saga 问题

作者: 浮梦i | 来源:发表于2018-01-18 16:58 被阅读0次

    Saga的工作方式是:

    监听一些异步action是否发出,一旦发出,则进行异步处理,交由新的同步action改变reducer。

    首先我们需要一个saga文件 :内容如下 只粘代码

    //引入两个方法

                 import { delay } from 'redux-saga'

                import { put, takeEvery , all } from 'redux-saga/effects'


             function* helloSaga() {

              console.log('Hello Sagas!');

        }

    //Worker saga, 工作saga,这里执行异步语句

            function* addserver() {

                  const {result} = yield fetch("/api/a.json").then(data=>data.json());

    //发出一个新的Action到store去。

               yield put({"type":"ADD" , number : result});

    }

    //Watcher saga ,监听器saga

                  function* watchaddserver() {

    //takeEvery:当有action的type是第一个参数的时候,立刻执行第二个参数。

                    yield takeEvery('ADDSERVER', addserver);

    }

    //默认暴露一个东西

              export default function* rootSaga() {

    //并行一些Effect

             yield all([

                           helloSaga(),

                          watchaddserver()

       ]);

    }

    编辑主文件:

    到底什么是saga?:

    是一个系列的工作文件,拦截action执行、执行异步、put出一个新的action改变reducer

    个人总结如图:

    用saga做异步的时候,不需要写bindActionCreator了。

    相关文章

      网友评论

        本文标题:Redux 中 Saga 问题

        本文链接:https://www.haomeiwen.com/subject/oiuwoxtx.html