You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3如何访问对象的_value属性 解决computed数组取值undefined问题

问题核心原因

computed返回值是ref类型的包装对象,你看到的_value属于Vue的内部私有属性,本身就不允许开发者直接调用,私有属性加下划线前缀就是框架用来标识「非公开API、不要主动访问」的规范。你直接把tools包装对象传给map方法,自然无法提取到内部数组里的id字段。

正确语法

要获取ref对象包裹的原始值,调用它的公开属性.value即可:

setup() {
    const store = useStore();
    const tools = computed(() => store.state.skill.tools);
    // 其他业务逻辑
    // 新增.value获取computed内部存储的真实数组
    store.commit('stateName/mutation', { key: map(tools.value, 'id') });
}

你提到的techstack同样属于ref类型的包装对象,要访问内部存储的数组,使用techstack.value即可。

注意事项

  • 所有ref、computed返回的包装对象,都需要通过.value访问内部存储的原始值
  • 永远不要主动调用__v_开头、单下划线开头的Vue内部属性,这类属性不属于公开API,版本迭代时可能会随时调整,依赖内部属性会导致代码兼容性极差
  • 如果你使用的是Pinia替代Vuex,可以直接用官方提供的storeToRefs工具解构state字段,效果和手动写computed完全一致,访问时同样需要加.value

内容的提问来源于stack exchange,提问作者djrtb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:27:03