sey*_*yet 5 arrays vue.js vue-props
我将一个值列表从父组件传递给它的子组件,并希望接收所有值,但我只接收最后一个。
这是父组件的代码:
<app-spider-web
v-for="skill in skills"
:name="skill.name"
:required="skill.required"
:vMode1="skill.vMode1"
></app-spider-web>
...
skills: [
{
name: 'Frozen Yogurt',
required: 1,
vMode1: ''
},
{
name: 'Ice cream sandwich',
required: 3,
vMode1: ''
},
{
name: 'Eclair',
required: 1,
vMode1: ''
}
]
Run Code Online (Sandbox Code Playgroud)
这是子组件的代码:
props:['name','required','vMode1']
Run Code Online (Sandbox Code Playgroud)
这样我一个一个接收数据,如果我想打印例如'name',它只显示列表中的姓氏'Eclair',而我想在子组件中有一个数组,其中包含所有名称。最好的方法是什么?
像这样,您将在子组件数组中收到名称和当前项目的索引,因此您可以仅获取子组件中项目的名称。
另外,不要忘记在使用 v-for 指令的地方添加唯一键。
家长.vue
<template>
<div>
<child
v-for="(skill, index) in skills.length"
:key="skill.name"
:index="index"
:names-array="skills.map(a => a.name)"
/>
</div>
</template>
<script>
import Child from './Child'
export default {
name: 'Parent',
components: {
Child
},
data () {
return {
skills: [
{
name: 'Frozen Yogurt',
required: 1,
vMode1: ''
},
{
name: 'Ice cream sandwich',
required: 3,
vMode1: ''
},
{
name: 'Eclair',
required: 1,
vMode1: ''
}
]
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
儿童.vue
<template>
<div>
<div>Index: {{ index }}</div>
<div>Names Array: {{ namesArray }}</div>
<div>Name: {{ namesArray[index] }}</div>
</div>
</template>
<script>
export default {
name: "Child",
props: ["names-array", "index"]
};
</script>
Run Code Online (Sandbox Code Playgroud)
输出:
索引:0 名称数组:[“冷冻酸奶”、“冰淇淋三明治”、“闪电泡芙”] 名称:冷冻酸奶
索引:1 名称数组:[“冷冻酸奶”、“冰淇淋三明治”、“闪电泡芙”] 名称:冰淇淋三明治
索引:2 个名称数组:[“冷冻酸奶”、“冰淇淋三明治”、“闪电泡芙”] 名称:闪电泡芙
| 归档时间: |
|
| 查看次数: |
13056 次 |
| 最近记录: |