React Native开发

Redux 中 Saga 问题

2018-01-18  本文已影响0人  浮梦i

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了。

上一篇下一篇

猜你喜欢

热点阅读