首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于时间范围的redux/normalizr建模

基于时间范围的redux/normalizr建模
EN

Stack Overflow用户
提问于 2018-11-26 11:03:56
回答 1查看 61关注 0票数 0

我有来自节点后端的以下数据:

端点:

/user/:id?startDate=2011-10-05T14:48:00.000Z&endDate=2011-10-05T14:48:00.000Z

代码语言:javascript
复制
[
   {
      "name": "Tom",
      "createdAt": "2011-10-05T14:48:00.000Z",
      "updatedAt": "2011-10-05T14:48:00.000Z",
      ...
      "metadata": {
         "activeHours": 134.45,
         "afkHours": 134.45
      }
   },
   {
      ...
   }
]

在这些数据中,唯一在日期更改之间进行修改的是activeHours和afkHours。

必须在所有页面上同步这些用户和调用端点的日期。

简单的方法是将其放入用户还原器中,如下所示:

代码语言:javascript
复制
{
   users: [...],
   startDate: "",
   endDate: ""
}

但是,我目前正在对这些用户使用normalizr,并且有一个名为ADD_ENTITIES的操作。拥有实体缩减器似乎非常有益,因为我们确实有其他实体,可以很好地与这些用户标准化,但是我不想污染实体状态,几乎是“挂在”startDate和endDate上,以便在所有页面上同步。

关于我的问题:

是否有更好的方法来使用normalizr来建模这个问题,其中键不仅是ID,而且是日期范围?

还是我应该像上面那样把它分解成一个独立的减速机?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 11:29:41

不知道我是否完全理解这里的问题。

对于每个用户,startDateendDate字段是不同的吗?如果是,则可能需要为这些用户在规范化实体对象中添加这些字段。

如果这些是所有用户的公共字段,则可以创建一个名为userDateRange的单独实体,其中包含这两个键。它不需要标准化,因为它们是原始字段。

代码语言:javascript
复制
{
  "entities": {
    "user": {
      "byId": {
        "user1": {},
        "user2": {}
      },
      "allIds": [
        "user1",
        "user2"
      ]
    }
  },
  "ui": {
    "userDateRange": {
      "start": "2011-10-05T14:48:00.000Z",
      "end": "2011-10-05T14:48:00.000Z"
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53479757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档