:詳細は、を参照してくださいhttps://github.com/redux-saga/redux-saga と https://redux-saga.js.org/docs/introduction/BeginnerTutorial.html
店舗/ index.js
'Reduxの'からインポート{CREATESTORE、applyMiddleware、コンポーズ} からインポートcreateSagaMiddleware 'Reduxの-佐賀' からインポート減速 './reducer' からインポートTodoSagas」./sagas' CONST sagaMiddleware = createSagaMiddleware()。 constのcomposeEnhancers = ウィンドウ.__ REDUX_DEVTOOLS_EXTENSION_COMPOSE__? ウィンドウ.__ REDUX_DEVTOOLS_EXTENSION_COMPOSE __({}):コンポーズ。 CONSTエンハンサー = composeEnhancers(applyMiddleware(sagaMiddleware))。 CONST店舗 = CREATESTORE( 減速、 エンハンサー )。 sagaMiddleware.run(TodoSagas)。 書き出すデフォルト店;
店舗/ sagas.js
インポート{takeEvery、PUT} 'Reduxの-佐賀/エフェクト' からインポートaxios 'axios' インポート{ INIT_LIST から} './actionType' インポート{ getInitListAction から} './action'
CONST ERR_OK = 0。
関数 * getInitList(){ 試み{ CONST RES =降伏axios.get( 'http://122.51.241.68/api/list' )。 const型データ = res.data。 もし(data.rcode === ERR_OK ){ CONSTリスト = data.data CONSTアクション = getInitListAction(リスト)。 置く(アクション)を得ました。 } } キャッチ(ERR){ にconsole.log( '网络请求失败:' + ERR) } } 関数 * mySaga(){ 収率takeEvery(INIT_LIST、getInitList) } エクスポートデフォルト mySaga。
店舗/ action.js
インポート{ DELETE_LIST_ITEM、 UPDATE_INPUT_VALUE、 ADD_LIST_ITEM、 INIT_LIST、 GET_INIT_LIST }から './actionType' 。 エクスポートCONST deleteListItemAction =(指数)=> ({ タイプ:DELETE_LIST_ITEM、 索引 }) エクスポートCONST updateInputValueAction =(値)=> ({ タイプ:UPDATE_INPUT_VALUE、 値 }) エクスポートCONST addListItemAction =(値)=> ({ タイプ:ADD_LIST_ITEM 、 値 }) initListAction CONSTエクスポート =(データ)=> ({ タイプ:INIT_LIST、 }) エクスポートCONST getInitListAction =(データ)=> ({ タイプ:GET_INIT_LIST、 データ })