我的第一个全栈 Web 应用程序( 九 )

使用mapsStateToProps() , 无需从组件中访问Redux存储 , 就能将状态内容放到props中

使用mapDispatchToProps() , 无需从组件中访问Redux存储 , 就能分发actions 。

这样就可以分离状态管理和状态显示 。 但这并非Redux的全部功能 。 我们在构建异步action creator的时候还是用了thunk中间件 。

什么是中间件?维基百科的解释是“提供系统软件和应用软件之间连接的软件 , 以便于软件各部件之间的沟通” 。 你可以认为中间件就像胶水一样 。 因此 thunk 可以让我们做一些原本做不到的事情 。 thunk 函数的参数是 dispatch , 因此可以在函数中使用 , 在本例中就是在action creator中使用 。 由于dispatch可以在函数内使用 , 我们可以利用这一点 , 仅在fetch请求结束时进行分发 。 如下例所示 , 我们仅在获取所有城市的fetch请求结束后进行分发:

actions/fetchCities.jsexport const fetchCities= () = { return ( dispatch )= { fetch( 'http://localhost:3000/api/v1/cities' ) .then( response = response.json()) .then( cities = { dispatch({ type : 'FETCH_CITIES' payload :cities ) )

推荐阅读