[英]Don't understand why onclick event not firing
我已經獲得了包含圖片的畫廊。 在每張圖像上,有3個圖標,當您單擊它們時它們應該執行操作。 我正在嘗試激活圖像圖標上的onclick事件,但沒有任何反應。 圖像圖標是在font-awsome的渲染功能中創建的。 我是JavaScript新手。
我一直在嘗試在網站上搜索其他問題,但是沒有一種解決方案適合我。
我要激活的功能:
setNewSize() {
const size = 500
this.setState({
size
});
}
這里的問題:
render() {
return (
<div
className="image-root"
style={{
backgroundImage: `url(${this.urlFromDto(this.props.dto)})`,
width: this.state.size + 'px',
height: this.state.size + 'px'
}}
>
<div>
<FontAwesome className="image-icon" name="clone" title="clone"/>
<FontAwesome className="image-icon" name="filter" title="filter" />
<FontAwesome className="image-icon" name="expand" title="expand" onclick={ this.setNewSize} />
</div>
</div>
);
}
}
React使用CamelCase約定,因此您應該放置onClick={this.setNewSize}
而不是onclick={this.setNewSize}
。 那對你有用嗎?
問題是onclick={ this.setNewSize}
在反應中,應該是onClick ,這樣改變;
在React中處理事件與在HTML中處理事件相似,但有一些主要區別:
希望對您有所幫助,不要忘記綁定方法。
您應該使用onClick,但也不要忘記綁定setNewSize,您可以通過三種方式執行此操作
1. onclick={ this.setNewSize.bind(this)}
2. constructor(props) { super(props); this.setNewSize = this.setNewSize.bind(this); }
constructor(props) { super(props); this.setNewSize = this.setNewSize.bind(this); }
constructor(props) { super(props); this.setNewSize = this.setNewSize.bind(this); }
3. const setNewSize = () => {....}
您需要了解的幾件事
傳遞給自定義react組件的屬性將作為prop傳遞給組件,除非在組件內使用並傳遞給DOM元素,否則它們不會產生任何影響。 要了解有關此內容的更多信息,請查看此帖子
3.您必須在構造函數中或使用箭頭函數綁定方法,以在其中正確使用this
。
要解決上述問題,如果您正在從庫中使用組件,則需要檢查組件的文檔,並查看處理onClick事件需要采取什么措施。 在駱駝的情況下,很有可能是onClick
。
如果您是自己編寫組件的,請確保按照鏈接文章中的說明解決問題。 將prop作為偶數傳遞給DOM元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.