中继现代商店客户端中的排序连接

时间:2019-09-04 21:11:28

标签: relaymodern

我有一个变异,它对中继连接中的两个边重新排序。乐观地执行此重新排序的正确方法是什么?我已经尝试过就地排序,例如:

const conn = ConnectionHandler.getConnection(pathway, 'PathwayGraph_actions');
const edges = conn.getLinkedRecords('edges');

edges.sort((a, b) => {
    const laneA = a.getLinkedRecord('node').getValue('laneNumber');
    const laneB = b.getLinkedRecord('node').getValue('laneNumber');

    return laneA - laneB;
});

这似乎不起作用。我怀疑中继会非常努力地禁止除通过其接口外的商店突变。我想我可以使用ConnectionHandler删除所有现有的边,然后以适当的顺序将它们全部重新添加,但这听起来很麻烦。有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

RecordProxy.setLinkedRecords使得这一点不那么糟糕:

edges.sort((a, b) => {
    const laneA = a.getLinkedRecord('node').getValue('laneNumber');
    const laneB = b.getLinkedRecord('node').getValue('laneNumber');

    return laneA - laneB;
});

conn.setLinkedRecords(edges, 'edges');

对有人是否有更时尚的方式还是有点好奇。