Vuejs2 vuejs中的函数正在执行多次
我是vuejs的初学者, 在我的模板中,我想显示在另一个数组管理器[]中定义的楼层管理器,因此我使用的是函数而不是变量。 但是这个函数运行了三次,我不知道为什么 这是我的模板Vuejs2 vuejs中的函数正在执行多次,vuejs2,Vuejs2,我是vuejs的初学者, 在我的模板中,我想显示在另一个数组管理器[]中定义的楼层管理器,因此我使用的是函数而不是变量。 但是这个函数运行了三次,我不知道为什么 这是我的模板 <div class="user-information containt-box shadow"> <div class="row mb-5"> <div class="col-sm-6"> <h4>Basic Informatio
<div class="user-information containt-box shadow">
<div class="row mb-5">
<div class="col-sm-6">
<h4>Basic Information</h4>
<div class="user-search-result-table mt-5">
<div class="form-detail no-gutters row">
<strong class="label col-sm-5">Floor Manager: </strong>
<span class="value col-sm-7">{{floorManager()}}</span>
</div>
如果有更好的方法,请告诉我。提前感谢。每次
此操作发生变化时,都会对该功能进行评估。
。该值必须在代码的其他部分发生变化
而且
使用find
而不是filter
。返回的值将不是数组
如果这不是计算属性方法,则应该是。将其移动到
computed
部分,并从模板中删除()
。尝试使用计算属性,而不是方法。(只需从方法中拉出该函数,并将其粘贴到computed下即可)
在模板中,只需替换对getter(属性名)的方法调用
。。。
楼层经理:
{{floorManager}}
...
我以这样的预防措施结束
floorManager() {
let floorManager = this.managers.filter(event => {
return event.id == this.floor.manager_id;
})
if(floorManager.length>0)
return floorManager[0].first_name + ' ' +
floorManager[0].last_name;
else
return '';
}
通过使用computed属性,它只执行一次
computed: {
hloorManager(){
let floorManager= this.managers.find(event => {
return event.id == this.manager_id;
})
console.log('qse');
return floorManager.first_name+' ' + floorManager.last_name;
},
...
}
但仍然无法读取未定义的属性“first_name”Hello。在您的情况下,应该使用computed属性。它不应该重复多次。作为旁注,最好使用Array.find来查找元素,而不是Array.filter,即使在找到一个元素之后,它也会覆盖所有元素。如果我想多次使用该属性,如何将参数传递给该属性。请告诉我为什么方法会执行多次。感谢您无法在内部计算管理器数组和管理器id,安装时由axios分配给它们的值
...
<strong class="label col-sm-5">Floor Manager: </strong>
<span class="value col-sm-7">{{floorManager}}</span>
...
floorManager() {
let floorManager = this.managers.filter(event => {
return event.id == this.floor.manager_id;
})
if(floorManager.length>0)
return floorManager[0].first_name + ' ' +
floorManager[0].last_name;
else
return '';
}
computed: {
hloorManager(){
let floorManager= this.managers.find(event => {
return event.id == this.manager_id;
})
console.log('qse');
return floorManager.first_name+' ' + floorManager.last_name;
},
...
}