我对这些技术还不太熟悉,也很难把我的头绕在上面,所以请容忍我。所以,我的情况是,我已经在Heroku上部署了Hasura并添加了一些数据,现在正在尝试实现一些功能,在这些功能中,我可以添加和编辑表的某些行。特别是我一直在跟踪
this
this
来自vue apollo。
我已经实现了添加和编辑(这是有效的),现在还想通过使用
update
属性和更新缓存。不幸的是,这就是我迷路的地方。我将在下面粘贴一些代码,以使我的问题更清楚:
ADD_PLAYER_MUTATION
)(与上面链接的Hasura文档中的相同):
mutation addPlayer($objects: [players_insert_input!]!) {
insert_players(objects: $objects) {
returning {
id
name
}
}
}
基因突变的密码
.vue
文件
addPlayer(player, currentTimestamp) {
this.$apollo.mutate({
mutation: PLAYER_ADD_MUTATION,
variables: {
objects: [
{
name: player.name,
team_id: player.team.id,
created_at: currentTimestamp,
updated_at: currentTimestamp,
role_id: player.role.id,
first_name: player.first_name,
last_name: player.last_name
}
]
},
update: (store, { data: { addPlayer } }) => {
const data = store.readQuery({
query: PLAYERS
});
console.log(data);
console.log(addPlayer);
data.players.push(addPlayer);
store.writeQuery({ query: PLAYERS, data });
}
});
},
更新
变异的一部分。在大多数例子中
{ data: { x } }
x
,所以我也这么做了,尽管我不知道为什么(至少我很困惑)。记录时
data
已记录玩家数组,但在记录时
addPlayer
undefined
未定义
是
更新