Redux - 如果深度嵌套,则不会收到道具

时间:2017-03-29 14:00:34

标签: reactjs redux react-redux

作为我商店的一部分,我有以下结构:

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没有检测到它?

0 个答案:

没有答案