我有一个突变
mutation createQuoteLineMutation {
createQuoteLine {
quoteLine {
name
price
product {
name
}
}
}
}
我的更新程序功能如下。
updater: (store) => {
const payload = store.getRootField('createQuoteLine');
const newQuoteLine = payload.getLinkedRecord('quoteLine');
const quote = store.getRoot().getLinkedRecord('getQuote');
const quoteLines = quote.getLinkedRecords('quoteLines') || [];
const newQuoteLines = [...quoteLines, newQuoteLine];
quote.setLinkedRecords(newQuoteLines, 'quoteLines');
}
这第一次可以正常运行,但是先前所有添加的quoteLines的随后突变都更改为新的,我假设这是因为newQuoteLine一直指向同一对象。
在更新程序功能的末尾添加以下行,也无法从createQuoteLine链接quoteLine。
payload.setValue(null, 'quoteLine');
在这方面的任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
我看到了一个非常相似的问题,但是不确定是否相同。尝试将clientMutationId
传递给突变,然后将其递增。
const commit = (
input,
onCompleted: (response) => void,
) => {
const variables = {
input: {
...input,
clientMutationId: temp++,
},
};
commitMutation(Environment, {
mutation,
variables,
onCompleted,
onError: null,
updater: store => {
// ....
},
});
};
尝试类似的方法,让我知道它是否可以解决:)。