一个应用的状态和状态相关的操作就是一个 store, Redux 应用只有一个单一的 store。
当想要使状态(state)发生改变时,就需要使用 store.dispatch 方法。有两种改变 state 的方法:同步的和异步的改变。
同步和异步修改 state 的方式都是通过 store.dispatch(action创建函数的调用) 来实现的,唯一的区别在于 action 创建函数
同步 action创建函数
同步 action 创建函数的调用返回一个 action对象,直接 store.dispatch(action) 或者使用将 mapDispatchToProps 注入到组件的 props 中交由组件调用即可同步修改 state。
异步 action 创建函数
异步 action 创建函数的调用返回一个函数,该函数接收一个 dispatch 参数,实现在异步结果返回后调用 dispatch 来完成对 state 的修改。
该函数的返回值将成为 store.dispatch 调用的返回值。
为了使 redux 能以这样的方式(store.dispatch(一个函数))运作,标准的做法是使用 Redux Thunk 中间件。
为了使 store 应用中间件,还需从 redux 里面导入 applyMiddleware,最终结果类似:
const store = createStore(
AppState,
applyMiddleware(thunkMiddleware)
)
网友评论