react-redux 上 slice() 的问题

problems with slice() on react-redux

我正在尝试使用 slice() 复制一个状态,然后对其进行操作并创建一个新状态

这是我的 Reducer:

case types.LOAD_AMOUNT_CHECKINS_SUCCESS: {
        let buildings = state.buildings.slice();

        buildings['devices_error'] = action.checkins['error];
        .
        .
        .
        return Object.assign({}, state,
            {buildings: buildings}
        );
    }

但应用 slice() returns 我:[]

哪里出错了?

要制作浅拷贝,您只能在数组上调用 slice() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

在您的代码示例中,您是在对象而不是数组上调用它。

假设 state.buildings 是一个对象(而不是数组),将第二行更改为:

case types.LOAD_AMOUNT_CHECKINS_SUCCESS: {
    let buildings = Object.assign({}, state.buildings);

    buildings['devices_error'] = action.checkins['error];
    .
    .
    .
    return Object.assign({}, state,
        { buildings: buildings }
    );
}