【发布时间】:2021-01-11 23:03:20
【问题描述】:
我已经完成了研究,但找不到一个好的答案。我的父子组件代码如下。如何将父级中的 v-for 循环的索引传递给子组件以供在那里使用?我想隐藏移动屏幕超过 #4 的任何仪表,但将它们全部显示在桌面上。
家长:
<div class="col-md-8 col-xs-6">
<div class="row flex-nowrap">
<data-block
v-for="(gauge, index) in device.gauges"
:metric="gauge.metric"
:value="gauge.value"
:unit="gauge.unit"
:alarm="gauge.alarm"
:idx="index">
</data-block>
</div>
</div>
孩子:
app.component('data-block', {
props: ['alarm', 'metric','value','unit','idx'],
template: `<div v-bind:class="'col card px-0 text-center border' + ((alarm) ? ' border-danger':' border-success') + ((idx > 3) ? ' d-none d-md-block':'')">\
<div class="card-header p-1">{{metric}}</div>\
<div class="card-body p-1 align-middle">\
<h1 class=" text-center display-1 font-weight-normal text-nowrap">{{value}}</h1>\
</div>\
<div class="card-footer p-1">{{unit}}</div>\
</div>`,
created: ()=> console.log(this.idx) //yields "undefined"
})
【问题讨论】:
-
你试过控制台登录
mounted钩子吗? -
你有任何错误吗?
this在箭头函数内不应该是正确的 -
你对箭头的看法是对的——我忘记了。我确实首先在挂载的钩子中尝试过,但没有得到任何东西,但我正在改变很多变量,试图让它在当时工作,并且可能忽略了一些东西。感谢您的帮助。
标签: vue.js vue-component vuejs3