我已经使用redux编写了一个容器组件,我的mapDispathToProps的实现看起来像这样
const mapDispatchToProps = (dispatch,ownProps) => { return { onChange: (newValue) => { dispatch(updateAttributeSelection('genre',newValue)); dispatch(getTableData(newValue,ownProps.currentYear)); } } }
问题是为了getTableData我需要一些其他组件的状态.如何在这个方法中访问状态对象?
您可以使用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)) } } }
一些不同的方法来组织这些,但是这样的东西应该是有效的.