2 回答

TA貢獻1802條經驗 獲得超10個贊
我相信這只是用語言思考你在做什么的問題。
想想這樣:functionHere
vs functionHere()
。有什么不同?沒有括號,它是對函數的引用,而有括號,它是函數執行器。
現在,就像 @merlin 所說,如果你這樣做,() => functionHere
你就是在聲明一個返回引用的函數,而不是一個執行器(無論如何,這應該不是很常見)。在這種情況下,onClick 將不起作用,因為不會調用執行器。
比較常見的是這個() => functionHere()
。這將返回執行器,這意味著當調用 onClick 事件時,functionHere 將實際運行(因為執行器)。
將引用直接傳遞到onClick
工作中,因為它是為在函數傳遞給它的任何地方運行而構建的。因此傳遞引用總是有效的,而傳遞返回引用的函數則不行????
另外, 如果您不需要控制傳遞哪些道具,只需使用引用即可。如果您想對道具進行一些控制,請使用箭頭功能(name) => functionHere(name)

TA貢獻1860條經驗 獲得超8個贊
() => functionHere
執行時返回該函數functionHere
,這意味著它與 just 相同functionHere
。
由于您沒有執行它,所以當您將值分配給沒有鍵的對象時,應該會拋出語法錯誤。
為了避免不必要的函數執行,你應該這樣寫
onClick?=?{functionHere}
請注意,這是有效的,因為 ES6 中引入了簡寫文字表示法,這使得它相當于
onClick?=?{funcitonHere:?functionHere}
添加回答
舉報