Apollo客户端3本地状态管理

问题描述

我决定使用apollo客户端3.0。我想在apollo客户端缓存中管理本地状态。

我在服务器端编写了架构和解析器。

const typeDefs = gql`
  type Movie {
    id: Int!
    medium_cover_image: String!
  }
type Query {
   movies(limit: Int,minimum_rating: Float): [Movie]!
`;

const resolvers = {
    Query: {
        movies: (_,{limit,minimum_rating}) => getMoveis(limit,minimum_rating)
    }

我使用apollo的Field策略在客户端添加了本地状态。

const cache = new InMemoryCache({
  typePolicies: {
    Movie:{
      fields: {
        isLiked: {
          read(){
            return isLikedVar();
          }
        }
      }
    }
  }
})

export const isLikedVar = makeVar(false);

const client = new ApolloClient({
  uri: 'http://localhost:4000/graphql',cache 
});

export default client;

因为我想用服务器端字段填充“ isLiked”。像这样

const GET_MOVIES = gql `
  query {
    movies {
      id
      medium_cover_image
      isLiked @client
    }
  }
`;

而且我无法使用反应性变量'isLikedVar'更改'Movie'类型的单个文件。 当我命令'isLikedVar(true)'时,所有值都会更改。 如何使用其ID更改单个'isLiked'值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...