作为我商店的一部分,我有以下结构:
dataTables: {
"myTable": {
loading: false,
queryParams: {
searchParams: {},
filterParams: {},
sortParam: {},
skip: null,
limit: null
},
searchTerm: "",
filter: {},
data: []
}
}
我将这个状态映射到这样的组件:
const mapStateToProps = (state, ownProps) => {return {
dataTable: state.dataTables["myTable"]
}};
我得到data
这样的道具:
nextProps.dataTable.data
如果商店中data
发生更改,则我的组件不会收到更新的道具。但是,如果我将mapStateToProps
更改为以下内容,我会收到更新的道具:
const mapStateToProps = (state, ownProps) => {return {
dataTable: state.dataTables["myTable"],
dataTableData: state.dataTables["myTable"].data
}};
...
nextProps.dataTableData
这是因为我没有在第一种情况下收到道具,因为data
深深嵌套在dataTables
状态对象内,而且Redux没有检测到它?