Vuejs2 从v-for传递参数以动态更新b-tab标题
使用vuejs仅6周,而且根本没有查看组件,如果这是一个愚蠢的问题,那么很抱歉 我正试图在v-for循环中动态更新tabs from的b-spinner组件,并将v-for中的参数设置为computed属性 它在不使用v-for时工作正常Vuejs2 从v-for传递参数以动态更新b-tab标题,vuejs2,bootstrap-vue,Vuejs2,Bootstrap Vue,使用vuejs仅6周,而且根本没有查看组件,如果这是一个愚蠢的问题,那么很抱歉 我正试图在v-for循环中动态更新tabs from的b-spinner组件,并将v-for中的参数设置为computed属性 它在不使用v-for时工作正常 <b-tab> <template v-slot:title> <b-spinner type="border" small v-show="!updateDone"></b-spinner> &l
<b-tab>
<template v-slot:title>
<b-spinner type="border" small v-show="!updateDone"></b-spinner> <strong>Tab Title</strong>
</template>
...
</b-tab>
updateOne
是一个计算属性,如下所示:
updateDone: function (player) {
return _.every(Object.values(this.someObject[player['player-name']]), Boolean)
},
但是,updateOne
永远不会返回b/cplayer
是一个完整的Vue对象(可能是父组件)
希望对此有所了解
解决方案
多亏了安东尼奥
{{player['player-name']}
...
根据您的评论,我意识到updateDone
是一个计算的
属性
在这种情况下,不要使用computed
属性
您必须使用方法
而不是计算
属性
为什么?
computed
属性被缓存,并且仅当它们的依赖关系更改时才会更改。
在您的情况下,player
在循环渲染选项卡时没有变化。这意味着它将显示与updateOne
属性相同的结果:(
但是每次调用一个方法时,它都会进行计算。:您是否用
包装了这些
?确实如此……每个玩家对象是否都有一个唯一的元素,例如id
?您能给我显示一个更新的方法吗?我没有分配:键,但这并没有解决问题。我已经更新了question.thx以获得答案,但这似乎不起作用。现在,当我将player
传递给updateDone(player)
时,它显示player
未定义。@RyanSkene请删除此代码中的=“{player}”
。所以
什么是someObject
?删除=“{player}”
不起作用someObject
是vue的一个属性app@RyanSkene请将:键移动到v-for
之后<代码>播放器
在v-for
updateDone: function (player) {
return _.every(Object.values(this.someObject[player['player-name']]), Boolean)
},
<b-tab v-for="player in updatePickPool" :key="player['player-id']">
<template v-slot:title>
<b-spinner type="border" small v-show="!playerPathComplete(player)"></b-spinner><strong> {{player['player-name']}}</strong>
</template>
...
</b-tab>