【问题标题】:Keep multiple loading states after calling graphql mutation many times多次调用graphql突变后保持多个加载状态
【发布时间】:2021-04-29 06:12:00
【问题描述】:

我在我的应用程序中使用 react 和 react apollo 并且有一个问题。 我有一个包含用户列表的页面。每个项目都包含“+”按钮。当我单击项目时,我想显示微调器,直到突变完成。

您能否建议我为每个突变调用保留loading 的更好解决方案? 现在我只是将它存储到数组中,但我认为它可以更好地解决

【问题讨论】:

  • 您可以将这个状态单独存储在每个项目中。
  • 您的意思是将这个loading 存储为一个单独的变量,与loading 突变无关?

标签: javascript reactjs frontend apollo-client react-apollo


【解决方案1】:

你需要存储一个loading进程和对应的user项之间的关系。

我建议(不知道您的要求)有一个loadings 数组,您可以在其中添加一个包含user id onClick 的loading item,并在完成后删除loading item。如有必要,loading item 还可能包含其他信息。

您可能还需要存储(可能是异步的)processloading item(或user item)之间的关系,这样您就知道哪个 loading item 已经完成了。

你可以这样做

  1. 在调用时从process 接收process id,并将该ID 与user item id 一起存储在loading item 中,
  2. 或者您可以在调用process 时将loading id 存储为闭包,并删除相应的loading item,例如在.then((xyz)=>{... removeLoading(processId) ...}) 内。

【讨论】:

    猜你喜欢
    • 2021-09-25
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2021-04-15
    • 2020-11-07
    相关资源
    最近更新 更多