【问题标题】:Managing state changes caused by an API patch管理由 API 补丁引起的状态更改
【发布时间】:2019-01-26 11:44:53
【问题描述】:

我有一个填充了 GUI -> API 调用 -> 节点后端 -> 环回 -> mongo db 的数据表。使用 NGRX 状态管理仅显示数据就可以正常工作。我使用模式对话框编辑其中一个字段,触发提交更改操作,调用相关补丁 API 并成功更新相关记录。

为了在 GUI 中反映此更改的记录。当 SUCCESSFUL_SUBMIT 动作到来时,我调用 get API。这工作正常,但我认为这不是使用 NGRX 做事的正确方法,我担心这会在未来引起维护问题。

所以我的问题是,我如何在 GUI 中反映更改的状态。请注意,在我知道数据库补丁成功之前,我不希望在 GUI 中显示更改。

该图显示了带有控制台日志的表格,该表格刚刚提交了对自动存档的更改。

【问题讨论】:

    标签: node.js angular mean-stack ngrx


    【解决方案1】:

    这对我来说似乎很好,但是:

    • 如果 POST 对象反映了 GET 对象,并且如果服务器不修改属性,您可以在没有额外 GET 的情况下更新您的商店
    • POST 响应正文可以包含对象以防止额外的 GET

    【讨论】:

    • 关于“POST 响应正文可以包含对象以防止额外的 GET”,我喜欢这个,但我不确定实现。例如如果我有 Policies[ ] 并且我只更改/发布一个 Policy,我如何让 NGRX 更新状态的 Policies[ ] 部分?
    • 您的意思是您的 GET 返回一个列表,而现在您想知道如何从列表中更新单个实体?
    • 是的,也许它与问题相关,因此可以添加到您的答案中?
    • 这完全取决于您使用的结构。例如,如果您使用 @ngrx/entity ,则可以使用 updateOne 方法,否则您必须手动更新实体。这可以通过找到您必须更新的实体并将其替换为新值来完成。
    • 大赚一笔。欠你一杯咖啡
    猜你喜欢
    • 2021-05-31
    • 1970-01-01
    • 2023-02-10
    • 2020-06-28
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 2018-04-21
    相关资源
    最近更新 更多