初始 `reactive ` 值为 null

initial `reactive ` value to null

各位。 我有一个关于使用 reactive 的问题。我知道状态的类型,但初始值为空。我如何使用赋值?代码如下

//....
  let origin = reactive<Timeslot | {}>({});
  const handler = (data) => {
       Object.assign(origin, data);
  };
//..

其实我想把origin的初始值赋值给null。我该如何处理这个问题?

您无法将 null 分配给反应式,因为反应式签名需要 the type extends an object:

function reactive<T extends object>(target: T): UnwrapNestedRefs<T>

话虽如此,你为什么想要一个空反应?如果你用 null 甚至一个空对象初始化一个反应式(即使这是可能的),你将无法从 vue 的反应式系统中受益,因为在这种情况下你没有跟踪任何东西。

也许您需要的是参考?您可以像这样使用可为空的联合类型使 ref 可为空。

let origin = ref<Timeslot | null>(null);