[英]How to bind functional React component to class events
我試圖把我的頭圍繞功能組件和綁定。
如果我有一個看起來像這樣的功能性React組件:
const Dashboard = props => {
const _dashboard = new _Dashboard()
return (
<div>
<div className="title">Dashboard</div>
<button>Log</button>
</div>
)
}
和一個看起來像這樣的類:
class _Dashboard {
constructor() { }
log() {
console.log('Dashboard Log Clicked!')
}
}
綁定按鈕單擊的正確方法是什么?
這是我嘗試過的並且不起作用
const Dashboard = props => {
const _dashboard = new _Dashboard()
return (
<div>
<div className="title">Dashboard</div>
<button onClick={ _dashboard.log }>Log</button>
</div>
)
}
但我覺得我從某種意義上說缺少某種東西。
編輯:我從log()調用中刪除了括號。 兩種方法都不會向控制台寫入任何內容。
您正在調用function aka _dashboard.log()
而不是_dashboard.log ;
您只需要刪除括號即可,否則實際上是在調用該函數並將onClick
綁定到該函數的結果。 如果沒有括號,則傳遞對該函數的引用。
<button onClick={_dashboard.log}>Log</button>
您必須編寫如下內容:
<button onClick={_dashboard.log}>Log</button>
要么
<button onClick={() => _dashboard.log()}>Log</button>
否則,您的代碼將立即執行且不受約束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.