Reactjs Redux-如果深度嵌套,则不接收道具
作为我商店的一部分,我有以下结构:Reactjs Redux-如果深度嵌套,则不接收道具,reactjs,redux,react-redux,Reactjs,Redux,React Redux,作为我商店的一部分,我有以下结构: dataTables: { "myTable": { loading: false, queryParams: { searchParams: {}, filterParams: {}, sortParam: {}, skip: null,
dataTables: {
"myTable": {
loading: false,
queryParams: {
searchParams: {},
filterParams: {},
sortParam: {},
skip: null,
limit: null
},
searchTerm: "",
filter: {},
data: []
}
}
我将此状态映射到组件,如下所示:
const mapStateToProps = (state, ownProps) => {return {
dataTable: state.dataTables["myTable"]
}};
nextProps.dataTable.data
我得到的数据的道具是这样的:
const mapStateToProps = (state, ownProps) => {return {
dataTable: state.dataTables["myTable"]
}};
nextProps.dataTable.data
如果存储区中的数据发生更改,则我的组件不会收到更新的道具。但是,如果我将MapStateTrops
更改为以下内容,我将收到更新的道具:
const mapStateToProps = (state, ownProps) => {return {
dataTable: state.dataTables["myTable"],
dataTableData: state.dataTables["myTable"].data
}};
...
nextProps.dataTableData
这就是为什么在第一种情况下我没有收到道具的原因,因为数据
深入嵌套在数据表
对象的状态中,并且Redux没有检测到它?Redux不关心数据是否嵌套。可能是您的组件使用了PureRenderMixin,而您正在改变状态。如果您提供了小提琴,回答起来会更容易。可能是因为我在减速器中使用Object.assign吗?这取决于您如何使用它。我怀疑任何人都不能帮助你,除非你对你正在尝试做的事情有一点了解。Redux不在乎你的数据是否嵌套。可能是您的组件使用了PureRenderMixin,而您正在改变状态。如果您提供了小提琴,回答起来会更容易。可能是因为我在减速器中使用Object.assign吗?这取决于您如何使用它。我怀疑任何人都不能帮助你,除非你对你正在做的事情有一点微词。