HowTo:查询调用后更新Apollo Cache?

时间:2018-06-07 14:41:56

标签: apollo react-apollo apollo-client

操作系统:Windows 10 Pro
阿波罗客户:^ 1.9.2
反应:^ 15.6.1

所以,我有分页设置来返回x个记录,我希望在每个页面增加后,将返回的结果添加到缓存中。我不确定为什么缓存没有更新,但它不是。我在这里俯瞰什么?

我的代码如下:



const allPostsCommentsQuery = graphql(All_Posts_Comments_Query, {
  options: (ownProps) => {
    const page = parseInt(ownProps.match.params.page, 10);
    const isNewPage = ownProps.location.pathname.includes('new');

    return {
      variables: {
        skip: isNewPage ? (page - 1) * parseInt(PRODUCTS_PER_PAGE) : 0,
        first: isNewPage ? parseInt(PRODUCTS_PER_PAGE) : parseInt(PRODUCTS_PER_PAGE),
        orderBy: isNewPage ? OrderBy : null,
      }
    }
  },
  props: ({ data }) => ({
    data: {
      ...data,
      fetchMore: ({ skip, first, orderBy }) => {

        return data.fetchMore({
          variables: {
            skip,
            first,
            orderBy,
          },
          updateQuery: (previousResult, { fetchMoreResult }) => ({
            allPostses: [
              ...previousResult.allPostses,
              ...fetchMoreResult.allPostses
            ]
          })
        });
      }
    }
  })
});

export default allPostsCommentsQuery(PhotoGrid)






export const All_Posts_Comments_Query = gql`
  query allPostsCommentsQuery ($first: Int, $skip: Int, $orderBy: PostsOrderBy) {
    _allPostsesMeta {
      count
    }
    allPostses (first: $first, skip: $skip, orderBy: $orderBy) {
      __typename
      id
      displaysrc
      caption
      likes
      comments (orderBy: createdAt_DESC) {
        __typename
        id
        posts {
          __typename
          id
        }
        text
        user
        deleted
      }
    }
  }
`;




0 个答案:

没有答案