【问题标题】:How to get original object from Vue 3 proxy?如何从 Vue 3 代理获取原始对象?
【发布时间】:2022-11-07 20:11:43
【问题描述】:

我想获取从 Vue 3 代理传递给 reactive() 的原始对象。这是我的代码:

const token: any = reactive(new Token());
console.log(token.target);//prints undefined

有人能说怎么做吗?

【问题讨论】:

  • 你需要这个做什么?这可能是 XY 问题

标签: javascript typescript vue.js vuejs3


【解决方案1】:

reactive 返回 JavaScript Proxy,它不会暴露原始对象,除非代理是可撤销的。

原始对象可以通过反应式代理上的__v_raw 属性访问,它不是公共 API 的一部分,不应依赖。公共 API 为toRaw

const token = reactive(new Token());
const rawToken = toRaw(token);

如果需要原始对象,则不应丢弃引用:

const rawToken = new Token();
const token = reactive(rawToken);

【讨论】:

  • ref 呢?这似乎无法获取ref 的基础对象。
  • 你能澄清一下你的情况吗?您是否尝试做reactive(someRef)
猜你喜欢
  • 1970-01-01
  • 2021-06-28
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
  • 2011-09-29
  • 2014-02-24
相关资源
最近更新 更多