【问题标题】:Apollo Client 3 reset reactive variable to its initial valueApollo Client 3 将反应变量重置为其初始值
【发布时间】:2021-02-18 11:55:51
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您可以将您的 initialValues 定义为常量。您可以使用此常量来重置您的 carVar。例如:carVar(constants.initialValues)
  • 谢谢@OzanManav。使用 Typescript 中的 Partial&lt;T&gt; 实用程序会更优雅。
  • 是的,它是类型安全的解决方案:)

标签: reactjs apollo-client


【解决方案1】:

如果我们如下创建缓存;

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

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

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

  CarVar(makeCar({}));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 2021-12-31
    • 1970-01-01
    • 2016-06-15
    • 2021-03-19
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多