【问题标题】:initial `reactive ` value to null初始 `reactive` 值为 null
【发布时间】:2021-04-07 14:11:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: vue.js vuejs3


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 在这种情况下,Timeslot 的属性会是反应性的吗?不应该对对象使用 reactive() 吗?
    猜你喜欢
    • 2021-10-05
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 2021-09-08
    • 2023-04-10
    • 1970-01-01
    • 2020-12-05
    • 2020-12-04
    相关资源
    最近更新 更多