Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Redux-如果深度嵌套,则不接收道具_Reactjs_Redux_React Redux - Fatal编程技术网

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吗?这取决于您如何使用它。我怀疑任何人都不能帮助你,除非你对你正在做的事情有一点微词。