将数据对象从父组件传递到子组件 [英] Pass data object from parent to child component

查看:32
本文介绍了将数据对象从父组件传递到子组件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在制作工具列表.

我正在尝试使用单个文件模板将完整的工具数据对象从父组件(工具列表)传递到每个子组件(工具项).

I'm trying to pass the full tool data object from the parent component (the tool list) to each child component (the tool items), using single file templates.

在子组件中,我收到此错误:

In the child component, I get this error:

属性或方法..."未在实例上定义,但在渲染期间被引用.确保在 data 选项中声明响应式数据属性.

Property or method "..." is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option.

其中 ... 是工具数据对象的任何属性,例如 titledescription.

Where ... is any property of the tool data object, for example title or description.

这是我的设置:

Tools.vue(父级):

<template>
    <main id="tools">
        <tool v-for="tool in tools" :data="tool" :key="tool.id"></tool>
    </main>
</template>

<script>
    import Tool from './Tool.vue'

    let test = {
        id: 1,
        title: 'Title',
        description: 'Description'
    };

    export default {
        data() {
            return {
                tools: [
                    test
                ]
            }
        },

        components: {'tool': Tool}
    }
</script>

Tool.vue(子):

<template>
    <div class="tool">
        <div class="title">{{ title }}</div>
        <div class="description">{{ description }}</div>
    </div>
</template>

<script>
    export default {}
</script>

应该很简单,但我无法用我的 google-fu 找到解决方案.我在这里想念什么?

It should be simple, but I'm unable to find the solution with my google-fu. What am I missing here?

推荐答案

如果要传递整个工具对象,先声明属性.

If you want to pass the entire tool object, first declare the property.

export default {
  props: ["tool"]
}

然后,使用您的 v-for 传递它.

Then, pass it using your v-for.

<tool v-for="tool in tools" :tool="tool" :key="tool.id"></tool>

您可以在子组件的模板中使用

You can reference it in your child component's template using

<div class="title">{{ tool.title }}</div>
<div class="description">{{ tool.description }}</div>

这篇关于将数据对象从父组件传递到子组件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆