Apollo客户端在突变后更新缓存,但不更新页面

时间:2019-08-14 15:38:37

标签: javascript graphql apollo-client mutation

我正在做一个非常简单的突变,它将项目添加到单个项目列表中,我可以看到,在突变之后它已成功添加到缓存中:

enter image description here

但是该页面不会使用新数据进行更新。

查询

export const RAW_CONFIG = `
  {
    allAdminConfigCategories {
      edges {
        node {
          id
          name
          dateCreated
          dateEdited
        }
      }
    }
  }
`

组件

<Query fetchPolicy="cache-and-network" query={CONFIG}>
  {({ data: { allAdminConfigCategories } }) => {
    const items = allAdminConfigCategories ? allAdminConfigCategories.edges.map(item => item.nodes) : []
    return (
      <Container data={allAdminConfigCategories} testId="admin-config">
        <Mutation mutation={CREATE}>
          {mutation => {
            return <Form submit={mutation} trigger={<CreateButton />} />
          }}
        </Mutation>
        <Divider />
        <List>
          {allAdminConfigCategories.map(item => (
             <h1>{item.name}</h1>
          ))}
        </List>
      </Container>
    )
  }}
</Query>

静音-createItem

我已包含所有可能的可返回数据,以期希望找到可行的方法。我的理解是,如果有一个ID,它将针对缓存进行检查。

export const CREATE = gql`
  mutation createAdminConfigCategory($name: String!) {
    createAdminConfigCategory(input: { adminConfigCategory: { name: $name } }) {
      adminConfigCategory {
        id
        name
        dateCreated
        dateEdited
      }
    }
  }
`

0 个答案:

没有答案