安装:npm install redux-thunk
Thunk Action Creator 示例
假设我们要构建一个存储用户代办事项的Web应用。用户登录后,应用需要从数据库中获取用户的所有代办事项。因为 Redux 仅支持同步数据流,我们可以使用 thunk 中间件来异步地生成 Ajax 请求以获取 action。
import {createStore,applyMiddleware} from 'redux';
import thunk from 'redux-thunk';
import rootReducer from '../reducers/root_reducer';
conststore=()=>createStore(rootReducer,applyMiddleware(thunk));
exportdefaultstore;
现在一切设置完毕, thunk 中间件已经能被应用到该 store:thunk 中间件导入自 redux-thunk,并且 thunk 的实例被传递给 Redux 的 applyMiddleware() enhancer函数。
此外,Ajax 请求可以如下所示::
export const fetchTodos=()=>fetch('/api/todos');
thunk 中间件使我们能够编写异步 action creator,它返回的是函数,而不是对象。