在 update(changeProps) 函式中,我有這樣的東西:
update(changedProps) {
if (this.person) {
this.__arr = ['hi', 'hi', 'hi'];
} else {
this.__arr = ['bye', 'bye', 'bye', 'bye'];
}
if (this.__hello) {
this.__arr.splice(1, 0, 'hello');
}
super.update(changedProps);
}
說 this.person 是真的,當我點擊別處并且頁面重新呈現時,它變成
this.__arr = ['hi', 'hello', 'hi', 'hi']
然后當它再次重新渲染時: this.__arr = ['hi', 'hello','hello', 'hi', 'hi']
它在每次重新渲染后不斷添加到陣列中。如果 this.person 不是真的,也一樣。我如何使它只添加一次?
如果我做了這樣的事情:this.__arr = [...this.__arr, 'hello'],它可以將它添加到最后,但我想將一個元素添加到索引 1
uj5u.com熱心網友回復:
兩件事情:
- 不要變異:
if (this.__hello) {
this.__arr = [...this.__arr].splice(1, 0, 'hello');
}
- 您是要在每次組件更新時都執行此操作,還是僅執行一次?
if (this.__hello && this.__arr[1] !== 'hello') {
this.__arr = [...this.__arr].splice(1, 0, 'hello');
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/388136.html
標籤:javascript 反应 点亮元素
上一篇:正則運算式:替換url的最后一段
