问题标签 [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.
javascript - Redux Reducer 如何更新标准化状态子节点
我有有效载荷 A,它代表一个 n 深的嵌套树,它看起来像..(您可以将 section 数组视为树上的子项)
有效载荷 A 的标准化状态如下所示
如果用户要扩展第 5 节,我会离开并从服务器加载更多的孩子。标准化后从服务器返回的有效负载 B 如下所示
如何编写一个 reducer 来组合(合并/映射等)规范化有效负载 A 和规范化有效负载 B,以便新的 Redux 存储状态如下所示...
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() {
}
immutable.js - 如何更改不可变映射中的键?
我有这样的数据结构(由 normalizr 生成):
现在我尝试弄清楚如何替换模板条目的键和值中的 UUID。基本上我怎样才能归档以下输出:
在我看来,一个好的候选人似乎是.mapEntries()
方法,但我正在努力如何使用它......
也许有人可以在这里帮我一把?
javascript - JS normalizr如何向实体添加不相关的键
我想用 规范化我的数据normalizr
。问题是我的数据中有一个键 ( teams
),它与其他数据没有关系。
例如:
我的架构:
我怎样才能将团队添加到由生成的实体对象中normalizr
?所以结果需要是:
redux - Redux + Normalizr:在 Redux 状态下添加和删除规范化实体
我有一个包含很多嵌套实体的 API 响应。我使用normalizr来保持 redux 状态尽可能平坦。
例如。api 响应如下所示:
使用下面给出的模式对该响应进行标准化normalizr
:
下面是它的外观:
redux 状态现在如下所示:
现在,如果我调度一个动作来添加 a tag
,那么它会添加一个tag
对象,state.tags
但它不会更新state.opening.tags
数组。删除标签时的行为也相同。
我保留opening
,tags
和docs
三个不同的减速器。
这是国家的矛盾。我可以想到以下方法来保持状态一致:
tags
我调度一个动作来更新标签并在reducer和reducer中收听它,opening
然后在两个地方更新标签。- 使用标签更新开头的补丁请求返回开头响应。我可以再次以适当的一致性调度使响应正常化并设置标签、打开等的操作。
这样做的正确方法是什么。实体不应该观察相关实体的更改并自行进行更改。或者有任何其他模式可以遵循任何此类操作。
ecmascript-6 - 如何为嵌套对象指定 normalizr 架构
输入:
架构
预期输出:(类似)
在我的示例中,我的根提供者对象和嵌套的 supervisingPhysician 对象都是相同类型的对象(提供者)。
如何定义模式,以便我可以同时规范化 root 和 supervisingPhysician。
谢谢你看这个。
javascript - 为什么我有这个 Uncaught TypeError: (0 , _normalizr.arrayOf) is not a function?
我正在关注 dan abramov 的 redux 教程,代码非常简单:
但我有这个错误:
未捕获的 TypeError: (0 , _normalizr.arrayOf) 不是函数
这就是我在调度中使用它的方式:
我似乎无法在这里追踪错误,这段代码有什么问题?
redux - 如何将“实体”的子对象移动到顶层并在 normalizr 中重命名“结果”对象?
现在当我规范化这个数组时:
Normalizr 输出:
纯粹通过修改架构,有没有办法输出它呢?
我知道事后我可以很容易地做到这一点,但是有没有内置的方法来调整输出的 JSON 数据的结构?