问题标签 [normalizr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
651 浏览

javascript - Redux Reducer 如何更新标准化状态子节点

我有有效载荷 A,它代表一个 n 深的嵌套树,它看起来像..(您可以将 section 数组视为树上的子项)

有效载荷 A 的标准化状态如下所示

如果用户要扩展第 5 节,我会离开并从服务器加载更多的孩子。标准化后从服务器返回的有效负载 B 如下所示

如何编写一个 reducer 来组合(合并/映射等)规范化有效负载 A 和规范化有效负载 B,以便新的 Redux 存储状态如下所示...

0 投票
1 回答
68 浏览

redux - printWasted - 使用 redux 和规范化 redux 存储时连接组件的包装器

当使用 React 性能工具和规范化 store redux 时,连接组件的 wrapper 得到了 print(in printWasted)

屏幕截图: 在此处输入图像描述 这是在处理 onClick 以编辑Comment组件中的文本时发生的

我的 redux 商店:

减速机:

行动:

组件(由 4 分隔):

容器:

文章:

评论:

创作者

这是否可以删除连接组件的包装器的 printWasted 或者我是否误解了 redux 和规范化 redux 存储?

0 投票
3 回答
739 浏览

reactjs - Can I force a rerender with setState even if the data hasn't changed? My GUI won't update?

So the problem I'm having right now is on first click, my GUI re-renders. But on second click, it does not re-render. I believe it's because I am not updating the state of "graphicLayers" which my render is binding through the "graphicLayers.map". That's my theory anyway (even though it works on first click? but not the 2nd click or anything after).

I tried forcing an setState update of graphicLayers, but it doesn't seem to be working. Like this:

but that's not working. I know through the debugger that it's setting the data correctly, and if I refresh (it saves state and reloads the state), the GUI is then rendered correctly.

Is there anyway I can force a re-render of a variable some how even if it doesn't change value?

constructor

render

addLayerClick

EDIT: I found the problem on my end, and it's not exactly shown here.

So my addLayerClick() actually calls another functions that is listening to a call and it sets the state inside. it's weird because the setState gets called in the callback function, but i got it to work by putting the setState in the addLayerClick() itself.. still dont know why this doens't work but i will upvote all of you at least

listenFunction() {

}

0 投票
1 回答
484 浏览

typescript - 将 js 模块导入打字稿文件(normalizr)

我正在尝试为我的打字稿项目使用normalizr库。所以我定义了以下实体架构(js格式)

并尝试在 .ts 文件中使用它

导致错误:

模块 ./schemas 被解析为“schemas.js”,但未设置“allowJs”参数

如果我在 tsconfig.json 中设置 allowJs = true ,则会发生错误:

无法写入文件“.../schemas.js”,因为它会覆盖输入文件

我也使用了这种方法

但是又出现了错误:

类型 'typeof' 上不存在属性架构 .../normalizr/index

我该如何解决?

Visual Studio 2017,ts v.2.2.2

0 投票
1 回答
633 浏览

immutable.js - 如何更改不可变映射中的键?

我有这样的数据结构(由 normalizr 生成):

现在我尝试弄清楚如何替换模板条目的键和值中的 UUID。基本上我怎样才能归档以下输出:

在我看来,一个好的候选人似乎是.mapEntries()方法,但我正在努力如何使用它......

也许有人可以在这里帮我一把?

0 投票
1 回答
329 浏览

javascript - JS normalizr如何向实体添加不相关的键

我想用 规范化我的数据normalizr。问题是我的数据中有一个键 ( teams),它与其他数据没有关系。

例如:

我的架构:

我怎样才能将团队添加到由生成的实体对象中normalizr?所以结果需要是:

0 投票
1 回答
2939 浏览

redux - Redux + Normalizr:在 Redux 状态下添加和删除规范化实体

我有一个包含很多嵌套实体的 API 响应。我使用normalizr来保持 redux 状态尽可能平坦。
例如。api 响应如下所示:

使用下面给出的模式对该响应进行标准化normalizr

下面是它的外观:

redux 状态现在如下所示:

现在,如果我调度一个动作来添加 a tag,那么它会添加一个tag对象,state.tags但它不会更新state.opening.tags数组。删除标签时的行为也相同。

我保留opening,tagsdocs三个不同的减速器。

这是国家的矛盾。我可以想到以下方法来保持状态一致:

  1. tags我调度一个动作来更新标签并在reducer和reducer中收听它,opening然后在两个地方更新标签。
  2. 使用标签更新开头的补丁请求返回开头响应。我可以再次以适当的一致性调度使响应正常化并设置标签、打开等的操作。

这样做的正确方法是什么。实体不应该观察相关实体的更改并自行进行更改。或者有任何其他模式可以遵循任何此类操作。

0 投票
1 回答
1431 浏览

ecmascript-6 - 如何为嵌套对象指定 normalizr 架构

输入:

架构

预期输出:(类似)

在我的示例中,我的根提供者对象和嵌套的 supervisingPhysician 对象都是相同类型的对象(提供者)。

如何定义模式,以便我可以同时规范化 root 和 supervisingPhysician。

谢谢你看这个。

0 投票
2 回答
807 浏览

javascript - 为什么我有这个 Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function?

我正在关注 dan abramov 的 redux 教程,代码非常简单:

但我有这个错误:

未捕获的 TypeError: (0 , _normalizr.arrayOf) 不是函数

这就是我在调度中使用它的方式:

我似乎无法在这里追踪错误,这段代码有什么问题?

0 投票
1 回答
160 浏览

redux - 如何将“实体”的子对象移动到顶层并在 normalizr 中重命名“结果”对象?

现在当我规范化这个数组时:

Normalizr 输出:

纯粹通过修改架构,有没有办法输出它呢?

我知道事后我可以很容易地做到这一点,但是有没有内置的方法来调整输出的 JSON 数据的结构?