簡體   English   中英

使用組件鍵從數組Reactjs中刪除元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM