我已经使用redux编写了一个容器组件,我的mapdispathToProps的实现看起来像这样
const mapdispatchToProps = (dispatch,ownProps) => { return { onChange: (newValue) => { dispatch(updateAttributeSelection('genre',newValue)); dispatch(getTableData(newValue,ownProps.currentYear)); } } }
您可以使用redux-thunk创建一个单独的动作创建者函数,该函数可以访问getState,而不是定义mapdispatchToProps中的函数:
function doTableActions(newValue,currentYear) { return (dispatch,getState) => { dispatch(updateAttributeSelection('genre',newValue)); let state = getState(); // do some logic based on state,and then: dispatch(getTableData(newValue,currentYear)); } } let mapdispatchToProps = (dispatch,ownProps) => { return { onChange : (newValue) => { dispatch(doTableActions(newValue,ownProps.currentYear)) } } }
一些不同的方法来组织这些,但是这样的东西应该是有效的.