【发布时间】:2018-12-02 20:27:16
【问题描述】:
我有一个要订阅待办事项列表的测试应用程序。但是我添加新的 todo 突变也乐观地更新了 UI。 问题是它现在刷新了整个反应视图,我不知道为什么。
这是罪魁祸首,它发生在我运行这个突变时:
export default graphql(addItem, {
options: {
fetchPolicy: 'cache-and-network'
},
props: props => ({
onAdd: item =>
props.mutate({
variables: item,
optimisticResponse: {
__typename: 'Mutation',
addItem: { ...item, __typename: 'Item' }
},
update: (proxy, { data: { addItem } }) => {
let data = proxy.readQuery({ query: listItems });
data.listItems.items.push(addItem);
proxy.writeQuery({ query: listItems, data });
}
})
})
})(AddItem);
【问题讨论】:
-
进一步调试表明,出于某种原因,在更新之前将我的 props.items 数组设置为 [ ]。每次更新。不知道为什么。
标签: reactjs aws-appsync