如果 prop 是响应式的,则无法获取子组件 prop 中的对象值
2023-08-10
134
我有一个父组件,并尝试将反应对象作为 props 传递:
<template>
<Child :info="reactiveObject" />
</template>
<script setup>
const reactiveObject = reactive({ name: "Object", id: "443"})
Child.vue
<template>
<div> {{ info.name }}
</template>
<script setup>
const props = defineProps({
info: Object,})
然后我收到 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'name')
如果我将完整的 props 对象信息传递到双括号中,我会在 html 中得到类似这样的值 image
为什么我无法通过 info.name 获取名称?
2个回答
使用 Reactive 时,你应该从 Vue 导入 Reactive。这是 Vue3 的功能。当你需要在 Vue 中使用某些东西时,你必须先导入它。
import { reactive } from 'vue'
const reactiveObject = reactive({ name: "Object", id: "443"})
当你忘记从 Vue 导入时,你不能在模板中使用它。这是不正确的语法。
你应该阅读更多 Vue 文档, 这是链接
jesse white
2023-08-10
不要使用 {{ info.name }},而要使用 {{ props.info.name }},因为还缺少结束标签
Domroe
2023-08-10