首页 > 解决方案 > Apollo Client 3 将反应变量重置为其初始值

问题描述

使用 Apollo Client 3 并创建了一个反应变量,如下所示;

 export const carVar = makeVar<Car>({
   brand: '',
   model: '',
   year: '',
   fastEnough: false,
});

在某些时候,我将其值设置为这样;

carVar({ brand: 'BMW', model: 'M4', year: '1991', fastEnough: true });

是否可以在不单独设置其属性的情况下将变量重置car为其初始值?

标签: reactjsapollo-client

解决方案


如果我们如下创建缓存;

export function makeCar(
  partial: Partial<Car>
): Car {
  return {
    brand: '',
    model: '',
    year: '',
    fastEnough: false,
    ...partial,
  };
}

export const CarVar = makeVar<Car>(
  makeCar({})
);

我们可以根据需要部分或全部重新初始化反应变量;

  CarVar(makeCar({}));

推荐阅读