javascript - ObjectAssign 将 bool 转换为 object

标签 javascript reactjs redux

我使用 Redux,但遇到了 reducers 的问题。

isLoading: true - 这是我发送的操作。

isLoading:{} - 这是我在 reducer 之后在 props 中得到的。

如何解决?

我用它:

export function movieDiscoverIsLoading(state = false, action) {
    switch (action.type) {
        case MOVIES_DISCOVER_LOADING:
            return Object.assign({}, state, action.isLoading);
        default:
            return state;
    }
}

export function movieDiscoverItems(state = [], action) {
    switch (action.type) {
        case MOVIES_DISCOVER_RESULTS:
            return Object.assign({}, state, action.items);
        default:
            return state;
    }
}

日志:

Logs

还有一个问题: 如何使用 Object.assign 或扩展运算符更改复制对象中的一些字段?

当我尝试类似的事情时: { ...state, ...{items: action.items, isLoading: false}} 我有嵌套对象,其中 isLoading 在项目内部。

最佳答案

您改变传递给 reducer 的初始状态。似乎你应该返回 boolean 而不是 object

export function movieDiscoverIsLoading(state = false, action) {
    // it is already boolean           ^^^^^^^^^^^^^
    switch (action.type) {
        case MOVIES_DISCOVER_LOADING:
            // why do you return an object here instead of boolean
            return Object.assign({}, state, action.isLoading);
        default:
            return state;
    }
}

要修复它,只需替换:

return Object.assign({}, state, action.isLoading); 

return action.isLoading;

关于javascript - ObjectAssign 将 bool 转换为 object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51189570/

相关文章:

javascript - 在 Threejs 中画一条线3

javascript - 通过 Redux 中的回调分派(dispatch)操作

javascript - react native 。应用程序的关闭事件

javascript - NestJS连接Redis微服务导致app卡住

javascript - Highcharts - 删除日期时间 x 轴类型上日期之间的时间

javascript - 将字符串替换为 react 中的标记

javascript - React Native 中的时刻显示错误的日期

javascript - 如何使用 redux 工具包查询 (RTKQ) 访问 transformResponse 中的查询参数?

javascript - 如何在调用一个 Action 后调用另一 Action ?

javascript - 使用 React onClick() 时更改颜色