2
基本的に私は突然変異の後で私のUIを更新したいが、これは真に痛みであり、数日後には止まってしまった。突然変異後のApolloクライアントのアップデートで元の結果をマップできないのですか?
私のコンポーネントの中には、自分のルートクエリに依存しており、結果をマップしています。
新しいリソースを作成してルートクエリを更新するたびに、結果がもう存在しないため、元の結果はもうロードされず、can't read property map of undefined
が返されます。小切手を追加することは何もせず、ちょうど永久に読み込みを続けます。
これは私の突然変異である:
export const withCreateLink = graphql(createLink, {
// Mutate normally gets passed as prop to wrapped component
props({ownProps, mutate}) {
return {
// But for updating the store we're actually hijacking mutate to a custom function
createLink(url, description, group) {
return mutate({
variables: {
url,
description,
group
},
optimisticResponse: {
createLink: {
__typename: 'Link',
id: -1,
url,
description,
group: {
id: group
}
}
},
update: (proxy, mutationResult) => {
const query = getAllGroups;
const data = proxy.readQuery({query});
data.allGroups.forEach((groupData) => {
if(groupData.id == group)
groupData.links.push(mutationResult.data.createLink);
});
proxy.writeQuery({
query,
data
})
}
})
}
}
}
});
は、私は単に私だけのリソースが追加されたグループをリフレッシュすることによって、私のUIを更新したいです。誰か助けてくれますか?
これは1.0以降のデフォルトです。したがって、dataIdFromObjectを指定しないと問題はありません。 – helfer