[英]Using component key to delete element from array Reactjs
因此我的代碼可以工作,但是我只是想澄清一下這是一種好的編碼實踐,還是以后會引起問題。
作為背景知識,這與我之前的問題類似: 如何通過reactjs中的組件/元素數組進行過濾 。 但是這次,我不是過濾dom元素數組,而是過濾組件數組。 這是我的操作方式:
上級:
delete_this(index)
{
let key = index._reactInternalInstance._currentElement.key;
this.repeats = this.repeats.filter( (item) =>
{
return item.key !== key;
});
this.setState({ repeats: this.repeats });
}
兒童:
delete_this(value)
{
this.props.delete_this(value);
}
render()
{
<button onClick={this.delete_this.bind(this, this)} ref={ (input) => { this.button = input; } }>delete</button>
}
我嘗試對對象本身進行過濾,但是它沒有用,所以我改用了鍵。
正如您在另一個與此非常相似的問題中提到的那樣,您不應依賴_reactInternalInstance
類的內部屬性。
他們是“私有的”,React團隊可以在技術上隨時棄用它。 我不知道關於semver的React團隊政策,但是我高度懷疑將內部api計數更改為重大更改。
因此,要回答您的問題,是的,這可能會引起問題。
您可以直接將id直接傳遞給delete方法:
<button onClick={() => this.props.delete_this(this.props.id)}>delete</button>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.