redux在react-native上使用(三)--加入redux-thunk
這篇 redux在react-native上使用(二)--加入saga 是使用redux-saga
, 可以跟這篇做個對比看下redux-thunk
和redux-saga
使用上的區別.
直接在這專案上修改, 只是把redux-thunk
替換了redux-saga
, 還是達到一樣的專案.
首先在package.json
裡新增redux-thunk
庫, 並在目錄下npm install
:
"dependencies": {
...
"redux-thunk": "^2.2.0"
},
把sagas.js
檔案刪除, 修改下store.js
檔案:
import { createStore, applyMiddleware, compose } from 'redux';
import createLogger from 'redux-logger';
import thunk from 'redux-thunk';
import rootReducer from './reducers';
const configureStore = preloadedState => {
return createStore (
rootReducer,
preloadedState,
compose (
applyMiddleware(thunk, createLogger())
)
);
}
const store = configureStore();
export default store;
redux-thunk
處理業務邏輯放在action
裡, 所以還要修改下actions.js
:
import { START, STOP, RESET, RUN_TIMER } from './actionsTypes';
const startAction = () => ({ type: START });
const stopAction = () => ({ type: STOP });
const resetAction = () => ({ type: RESET });
const runTimeAction = () => ({ type: RUN_TIMER });
var t = -1;
export const start = ()=> {
return dispatch => {
dispatch(startAction());
if(t != -1) return;
t = setInterval(() => {
dispatch(runTimeAction());
}, 1000);
};
}
export const stop = ()=> {
return dispatch => {
dispatch(stopAction());
if (t != -1) {
clearInterval(t);
t = -1;
}
}
}
export const reset = ()=> {
return dispatch => {
dispatch(resetAction());
dispatch(stop());
}
}
OK, 大功告成, commond+R
執行.
相關文章
- redux在react-native上使用(三)–加入redux-thunkReduxReact
- redux在react-native上使用(四)–connect使用ReduxReact
- Redux中介軟體之redux-thunk使用詳解Redux
- redux-thunk 之謎Redux
- redux中介軟體之redux-thunkRedux
- Redux-thunk快速入門Redux
- react-native使用redux 存在的坑ReactRedux
- 在 React-Native 中持久化 redux 資料React持久化Redux
- Redux非同步解決方案之Redux-Thunk原理及原始碼解析Redux非同步原始碼
- 深入理解redux原理,從零開始實現一個簡單的redux(包括react-redux, redux-thunk)ReduxReact
- React + Redux + Redux-thunk + Semantic-UI-React 實現一個簡單天氣AppReactReduxUIAPP
- 在 React 中使用 ReduxReactRedux
- react-native 之 state 和 props 以及 redux 和 react-reduxReactRedux
- 在Flutter中封裝redux的使用Flutter封裝Redux
- 在微信小程式中使用redux微信小程式Redux
- Redux在React中的使用小結ReduxReact
- 初識Fish Redux在Flutter中使用ReduxFlutter
- 在 Android 上使用協程(三) :Real WorkAndroid
- 初識react(三)在 react中使用redux來實現簡版計數器ReactRedux
- [譯]在 React & Redux 中使用 AJAX 輪詢ReactRedux
- 封裝一個在react上更易用的redux框架封裝ReactRedux框架
- 怎樣在IE工具欄上加入自己的工具 (轉)
- 優雅的在React專案中使用ReduxReactRedux
- 手把手教你在小程式裡使用 ReduxRedux
- 【翻譯】使用React、 Redux 和 SVG 開發遊戲(三)ReactReduxSVG開發遊戲
- Redux 入門教程(三):React-Redux 的用法ReduxReact
- redux 和 mobx 在渲染子元件的問題上的思考Redux元件
- react-native TextInput 使用React
- 如何優雅地在React專案中使用ReduxReactRedux
- Redux概念之二: Redux的三大原則Redux
- Redux使用教程Redux
- MVC、MVP、BloC、Redux四種架構在Flutter上的嘗試MVCMVPBloCRedux架構Flutter
- 移動資料庫 Realm 在 React-Native 的使用詳解資料庫React
- Redux 包教包會(一):介紹 Redux 三大核心概念Redux
- [譯]在 Redux 中使用 AJAX 輪詢(二):Saga 篇Redux
- 在react中使用redux並實現計數器案例ReactRedux
- [譯] 在大型應用中使用 Redux 的五個技巧Redux
- 在 Mac 上使用 JavaMacJava