中继突变后如何更新商店?

时间:2020-03-26 09:08:43

标签: graphql relay

我正在努力弄清楚它应该如何工作。我有一个具有当前用户的应用程序,因此,最上面的查询如下:

  query AppQuery {
    currentUser {
      id
      email
      ...Account_currentUser
      ...AccountEdit_currentUser
    }
  }

AccountEdit_currentUser的定义方式如下:

export default createFragmentContainer(AccountEdit, {
  currentUser: graphql`
    fragment AccountEdit_currentUser on User {
      email
      name
      nickName
    }`
})

AccountEdit组件上。该组件会造成这种突变:

  mutation AccountEditMutation($email: String!, $name: String!, $nickName: String!) {
    updateAccount(input: {email: $email, name: $name, nickName: $nickName}) {
      accountUpdated
      currentUser {
        id
        email
        name
        nickName
      }
    }
  }

在此之后,服务器将为电子邮件,姓名,昵称等返回正确的值。这些新值应如何最终存储在商店中?因为它似乎不是自动的。我需要编写自定义更新程序吗?并更新配置?我试了几次,但我什至无法找到甚至引发合理错误的地方。

1 个答案:

答案 0 :(得分:0)

此存储的更新是自动进行的,之所以没有进行更新,是因为原始查询和后续查询中当前用户的node_ids不同。一旦使它们相同,它就会开始工作。