我遇到一个问题,即特定的subscribeToMore函数无法正确更新查询数据。 subscriptionToMore函数可以正确接收新的订阅数据,但不会更新查询。
updateQuery: (prev, { subscriptionData }) => {
if (!subscriptionData.data) return prev;
let tabFields = [subscriptionData.data.fieldCreated, ...prev.tabFields];
return Object.assign({}, prev, {
tabFields
});
}
如果我使用console.log prev和Object.assign函数,则会得到:
{tabFields:Array(x)}和{tabFields:Array(x + 1)}。这向我表明返回数据的格式正确。但是该组件未重新渲染,因此...
subscribeToNew(subscribeToMore);
console.log(data.tabFields);
return renderFields(data.tabFields);
...在订阅发生时不重新呈现或记录。
这时我很沮丧。我还有其他几种使用相同格式的订阅。他们工作得很好。返回响应与先前数据的格式匹配。