redux sagas 设置

index

import React from 'react';
import ReactDOM from 'react-dom';
import {HashRouter as Router,Route,Switch} from 'react-router-dom'//导入的方式跟之前有点变化
import './index.css';
import registerServiceWorker from './registerServiceWorker';
import { Provider } from 'react-redux';
import configure from './store/configureStore';
import rootSaga from './store/sagas/index';

import {
    App,
    Home,
    Redux,
} from './pages';
const store = configure({ config: global.$GLOBALCONFIG });
store.runSaga(rootSaga);
const RouterList = () => (
    <Router>      
        <div>
            <Switch>                   
                <Route exact path="/" component={App}/>
                <Route exact path="/home" component={Home}/>
                <Route exact path="/redux" component={Redux}/>
            </Switch>            
        </div>
    </Router>
)

ReactDOM.render(
    <Provider store={store}>
        <RouterList />
    </Provider>, 
    document.getElementById('root')
);
// registerServiceWorker();

store目录下(包括 actions、reducers、sagas) 添加一个文件configureStore.js

import { createStore, applyMiddleware } from 'redux'
import createSagaMiddleware, { END } from 'redux-saga';
import { createLogger } from 'redux-logger';
import rootReducer from './reducers'


export default function configure(initialState) {
  const create = window.devToolsExtension
    ? window.devToolsExtension()(createStore)
    : createStore

  const sagaMiddleware = createSagaMiddleware();

  let middlewares=[sagaMiddleware];

  //if (process.env.NODE_ENV === 'development') {
    const logger = createLogger({
    // ...log options
    });
    middlewares.push(logger);
  //}

  const createStoreWithMiddleware = applyMiddleware(...middlewares)(create)
  const store = createStoreWithMiddleware(rootReducer, initialState)
  store.runSaga = sagaMiddleware.run;
  store.close = () => store.dispatch(END);


  return store
}

reducers目录下添加一个 index.js

/**
 * reducer组件引导页
 * 
 * 所有在本文件夹中申明的reducer组件须在本组件注册合并,否则无法使用
 *
 * @date    2017-07-06
 * @author  shuwenjie<4483378@qq.com>
 */

import {
  routerReducer as routing,
} from 'react-router-redux'
import {
  combineReducers,
} from 'redux'

import tally from './tally';


const rootReducer = combineReducers({
  routing,
  config: (state = {}) => state,
  tally
});

export default rootReducer;

sagas目录下添加一个index,js

/**
 * saga组件引导页
 * 
 * 所有在本文件夹中申明的saga组件须在本组件注册监听,否则无法使用
 *
 * @date    2017-07-06
 * @author  shuwenjie<4483378@qq.com>
 */

 import { fork } from 'redux-saga/effects';

 import * as tally from './tally';
 

 export default function* rootSaga() {
   yield [
     //系统配置化数据
     fork(tally.watchRequestCustomerCustomerList),
   ];
 }

 

posted @ 2017-11-06 19:57  huihui2014  阅读(83)  评论(0)    收藏  举报