标签:rom thunk data obj 流程 默认 UNC ESS etc
import { Provider } from ‘react-redux‘; import { createStore, applyMiddleware } from ‘redux‘; import thunk from ‘redux-thunk‘; import Router from ‘../router‘ import Rducer from ‘../reducer‘ const Store = createStore(Rducer, applyMiddleware(thunk)); const App = () => { return( <Provider store={Store}> <BrowserRouter> <Router/> </BrowserRouter> </Provider> ) }
默认情况下redux只能dispatch一个plain object,例如:
dispatch({ type: ‘SOME_ACTION_TYPE‘, data: ‘xxxx‘ });
使用 redux-thunk 之后,可以dispatch一个函数了,这个函数会接收dispatch, getState作为参数,在这个函数里你就可以干你想干的事情,在任何地方随意dispatch了,例如下面这个ajax请求:
dispatch(function (dispatch) { $.get(‘/api/users‘, function(users) { dispatch({ type: ‘FETCH_USERS_SUCCESS‘, users: users, }); }); });
//thunk export const test = () => { return dispatch => { setTimeout(()=>{ dispatch({type: "change"}) },1000) } }
//异步dispatch export const test2 = (dispatch)=> { setTimeout(()=>{ dispatch({type: "change"}) },1000) }
这二者有什么区别?
标签:rom thunk data obj 流程 默认 UNC ESS etc
原文地址:https://www.cnblogs.com/longlongdan/p/11283878.html