[英]React onClick function only fires once upon rendering to DOM
我有一個React組件的示例,它根據組件的狀態將標記呈現給DOM。 目的是在單擊delete_tag
錨點后從狀態的tags
數組中刪除該item
。 現在,我只是將其設置為提醒用戶。
getInitialState: function () {
return {
el: 'times',
tags: ['dog', 'cat']
};
},
render: function () {
let that = this;
return (
<div id={this.state.el}>
<div className="center-form">
<div className="tag_div">
{ this.state.tags.map(function(item) {
return (
<div className="tag">
{item}
<a className="delete_tag" onClick={alert(item)}></a>
</div>
);
})
}
</div>
</div>
</div>
);
}
使用上面的代碼,在每個標記呈現之前,用戶會收到警報。 之后,標記會呈現,但delete_tag
錨點不會響應任何點擊。
鑒於此組件中的其他函數以與onClick={that.function()}
類似的方式使用似乎按預期工作,我發現這很奇怪。 為什么這個onClick
屬性不按預期運行?
你需要傳遞onClick
一個函數。 你傳遞的值 - alert(item)
- 不是一個函數,它只是一個alert
的調用。
相反,你想要:
onClick={function () { alert(item); }}
或者,如果您使用的是ES6:
onClick={() => alert(item)}
將onClick更改為:
... onClick={function(){ alert(item); }} ...
這應該工作,因為現在你給出了將被稱為onClick回調的函數。 在你的版本中,它被稱為imediatelly,onClick沒有任何回調
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.