如何写入Apollo缓存中的最后一项?

时间:2018-06-26 18:07:44

标签: apollo react-apollo

以下内容适用于查询缓存中除最后一项以外的所有项。

如果以下代码中的postIndex恰好是Apollo缓存数组中的最后一项,那么writeQuery会运行,不会引发错误,但实际上不会更新缓存

const upsertIntoApolloCache = (upsertParams) => {
    const data = client.readQuery({
      query: USER_POSTS_QUERY,
    });
    const currentUserPosts = data.currentUser.posts;

    const postIndex = currentUserPosts.findIndex(post => 
        post.id === upsertParams.Id
    );
    if (postIndex === -1) {
      currentUserPosts.push(upsertParams);
    } else {
      currentUserPosts[postIndex] = upsertParams;
    }

    client.writeQuery({
      query: USER_POSTS_QUERY,
      data,
    });
};

我丢失了某些东西还是遇到了错误?
如何写入Apollo缓存中的最后一项?

0 个答案:

没有答案