Normalizr - 我应该在哪里修改一个实体?

Normalizr - where would I modify an entity?

所以我 运行 提前规范化了我的 reducer 中的所有实体,这意味着每个 reducer 都有一个单独的 entities 对象。我现在意识到 one reducer 在其中包含 all 实体更有意义,然后只需将 ID(例如 currentUser 或其他东西)存储在单独的减速机。

这种方法对于从 API 响应中合并实体是完全有意义的,但我不知道如何 更改 任何实体。

比如我应该在哪里做这样的操作?

    case SUBSCRIBER_TOGGLED: {
        let projectSubscriberIDs = cloneDeep(action.payload.project.subscriberIDs);

        let indexIfExists = projectSubscriberIDs.indexOf(action.payload.user.id);

        if(indexIfExists != -1){
            projectSubscriberIDs.splice(indexIfExists, 1);
        }else{
            projectSubscriberIDs.push(action.payload.user.id);
        }

        return {
            ...state,
            entities: {
                ...state.entities,
                projects: {
                    ...state.entities.projects,
                    [action.payload.project.id]: {
                        ...action.payload.project,
                        subscriberIDs: projectSubscriberIDs
                    }
                }
            }
        }
    }

这里有人有任何见解吗?

一些想法: