我想按特定顺序显示任务列表。问题是,用户应该能够更改顺序并将其保存到graphql(用户还可以从列表中添加和删除任务)。目前我们已将列表实现为中继连接,并且添加/删除/更新工作正常。以下是我们现在正在考虑的事项:
正如我所看到的,每个都存在一些问题。使用有序列表并将其复制到本地状态,我们必须以某种方式处理添加/删除操作并相应地更新本地状态。
使用数字排序顺序,如果我们使用运行数字,例如1..2..3 ..,当我们想要在1号和2号之间移动数字200时,我们必须更新许多数字。这看起来像很多更新,我不知道这是如何处理继电器/ graphql。
使用链接列表还有很多簿记涉及更改顺序,我不确定如何处理中继突变。也许从变异中返回3个任务(所有已将指针更改为列表中下一个的任务)并在" FIELDS_CHANGE"中指定。配置?
使用relay / graphql / react时哪个是最佳解决方案?其他解决方案非常受欢迎。
答案 0 :(得分:1)
我们沿着这条道路创建了一个单独的变异,用于相对于另一个项目移动项目:
get
查询返回没有任何order
键或moveBefore
或moveAfter
突变完成,返回新排序的列表。参数是新的itemToMove
和relativeTarget
。突变的签名大致如下:
moveAfter(itemToMove: ID!, itemToMoveAfter: ID!): Item[]
在另一个项目之前移动项目具有相同的签名&行为,只是服务器端逻辑有点不同。
由于我们没有使用中继,我无法评论如何让中继知道这些变化。