简单实现react-thunk中间件

92 阅读1分钟

我正在参加「码上掘金挑战赛」详情请看:码上掘金挑战赛来了!

redux中dispatch只允许我们最终传入action对象({type: ..., ...})。 利用react-thunk中间件,我们可以传入函数(执行异步操作),再将异步操作的结果dispatch。

//在redux中引入react-thunk中间件
import { createStore, applyMiddleware } from 'redux';
import thunkMiddleware from 'redux-thunk';

import reducer from './reducer';

const storeEnhancer = applyMiddleware(thunkMiddleware);
const store = createStore(reducer, storeEnhancer);

export default store;
//具体使用

//index.js
useEffect(() => {
 dispatch(getNewAlbumAction(10))
}, [dispatch])
  
//actionCreators.js
export const getNewAlbumAction = (limit) => {
  return dispatch => {
    getNewAlbum(limit).then(res => {
      dispatch(changeNewAlbumAction(res))
    })
  }
}

可以看到利用中间件,我们可以对原本的东西进行增强,中间件的架构、实现值得我们去学习。