如何在 Vue3 中使用数组访问反应对象内的数据?

Posted

技术标签:

【中文标题】如何在 Vue3 中使用数组访问反应对象内的数据?【英文标题】:How do I access data inside a reactive object with an array in Vue3? 【发布时间】:2021-11-10 03:30:22 【问题描述】:

我很难访问测试属性中的值。 当我执行 current.room.test 时,我得到“Proxy : …, : … ”作为值,但我想读取 isButtonDisabled() 中所示的数组。

不确定在 setup/isButtonDisabled 函数中执行此操作的技巧是什么。

我可以做 current.room.title 并且没有问题,但是当我有一个对象时,我不知道如何获得它的价值

谢谢

export default defineComponent(
  name: "App",
  setup() 

    const roomId = ref(5);
    const current = reactive(
      room: _id: 1, title: 'title', test: [_id: 4, _id: 3],
    );

    function isButtonDisabled(optionIdx: number) 
      console.log(current.room.test);
      console.log(current.room.test[optionIdx]);
    

    return 
      current,
    ;
  ,
);

【问题讨论】:

【参考方案1】:

这里的关键是将您的方法返回到模板中(如果您想从那里调用它)。您访问这些项目的语法是正确的。

const  createApp, reactive, ref  = Vue;
const app = createApp(
  setup()       
    const roomId = ref(5);
    const current = reactive(
      room: _id: 1, title: 'title', test: [_id: 4, _id: 3],
    );
    
    function isButtonDisabled(optionIdx) 
       console.log(current.room.test[optionIdx]);
       console.log(current.room.test[optionIdx]._id, ' value');
    

    return 
      isButtonDisabled
    
  
);
app.mount("#app");
<script src="https://unpkg.com/vue@next"></script>
<div id="app">
  <button @click="isButtonDisabled(0)">test: _id: 0</button>
  <button @click="isButtonDisabled(1)">test: _id: 1</button>
</div>

【讨论】:

以上是关于如何在 Vue3 中使用数组访问反应对象内的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应组件状态下修改对象内的数组

如何将对象数组文件访问到反应组件中?

如何访问类对象内的数组值?

Vue 3 - 如何在没有 .value 的情况下使用反应式 ref 和计算?

如何在猫鼬模型内的数组中查找对象?

如何在本机反应中基于数组内的图像uri渲染图像组件