我试图将一个数组从父对象传递给孩子,但在孩子而不是父对象中渲染/输出它。在我发现的教程中,我只能在父级中渲染数组。例如,我有以下内容:
孩子
<template>
<div>
{{tile.name}} {{formattedPoints}}
</div>
</template>
<script>
export default {
props: {
tile: {
required: true,
type: Object
}
},
computed: {
formattedPoints() {
return this.tile[0].name = 5
}
}
}
</script>
父母
<template>
<div>
<User v-for="tile in tileMenu" :key="tile.id" :tile="tile" />
</div>
</template>
<script>
import User from './Home.vue'
import { ref } from 'vue'
export default {
components: {
User
},
setup() {
const tileMenu = ref([
{ id: 1, name: 'tile1' },
{ id: 2, name: 'tile2' },
])
return { tileMenu }
}
}
</script>
在这个示例中,我将与父级一起输出,但我希望与孩子一起输出。在我的思考过程中,这应该是可能的,因为无论如何我都会将数组传递给子组件,并且如果我这样调用它
<template>
<div>
{{tile[0].name}}
</div>
</template>
它应该给我输出与子组件。但这什么也没输出。我该如何解决这个问题?预先感谢
答案 0 :(得分:0)
我可以向您建议(并且ID必须是唯一的,因为它是for循环中的关键)
父母:
<template>
<div>
<User :tileMenu="tileMenu" /> <!--pass all array-->
</div>
</template>
<script>
import User from "./Home.vue";
const tileMenu = [
{ id: 1, name: "tile1NAME" },
{ id: 2, name: "tile2NAME" },
];
export default {
components: {
User,
},
data() {
return {
tileMenu: tileMenu,
};
},
};
</script>
孩子:
<template>
<div>
<div v-for="tile in tileMenuChild" :key="tile.id">
{{ tile.name }} with id {{ tile.id }}
</div>
</div>
</template>
<script>
export default {
props: {
tileMenu: Array,
},
data() {
return {
tileMenuChild: this.tileMenu,
};
},
};
</script>