這是我在父組件中的代碼:
<div
v-for="measurement
in measurements"
:key="measurement.id"
>
<graph-component
:value="valueOfMeasurement(measurement)"
></graph-component>
</div>
我將道具發送 value到子組件graph-component。
:value應該將陣列發送到graph-component但我收到錯誤You may have an infinite update loop in a component render function.。
方法valueOfMeasurement(measurement)是:
methods:{
valueOfMeasurement(measurement) {
this.arrayOfValues.length=0;
this.counter=0;
for( this.counter;this.counter<this.message.feeds.length;this.counter )
{
this.arrayOfValues.push(this.message.feeds[this.counter]["field" measurement.fieldId]);
}
return this.arrayOfValues;
}
}
我是 Vue.js 的初學者,我認為我收到這個錯誤是因為我將新元素推送到陣列,但我找不到其他方法來做到這一點。
uj5u.com熱心網友回復:
您可能會遇到無限回圈,因為您在渲染期間正在改變狀態。具體來說,您valueOfMeasurement在渲染期間(即在模板內)呼叫該方法,該方法正在修改組件狀態(this.arrayOfValues和this.counter)。這將觸發 Vue 再次重新渲染,然后再次改變狀態,以此類推。
為什么是arrayOfValues和counter本地狀態?無論如何,每次呼叫方法時都只是清除它們,因此它們似乎應該只是方法中的區域變數。但是……這取決于是否對<graph-component>這些陣列進行了變異;如果是這樣,您應該在模板之外提前預先計算所有這些資料,也許measurements是第一次設定或created掛鉤等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/370463.html
上一篇:Vue2和Firebase9-“在‘firebase/firestore’中找不到匯出‘getFirestore’
下一篇:v-if事件總線事件后不更新
