Verwenden Sie TypeScript React, um Klickereignisfunktionen zu entprellen
P粉032649413
2023-08-27 10:33:19
<p>Ich versuche, die Lodash-Debounce-Funktion in der Onclick-Funktion zu implementieren, um Mehrfachklicks auf die Schaltfläche zu vermeiden. Die Lösung, die ich gefunden habe, ist folgende: </p>
<pre class="brush:php;toolbar:false;">function saveForm() {
//Führen Sie hier einige Operationen aus
}
<Button onClick={debounce(() => saveForm, 1500, {
maxWait: 2000 })}>
speichern
</Button></pre>
<p>Ich sehe viele Beispiele dafür, wie man eine Funktion außerhalb der Rückgabe entprellt und diese entprellte Funktion dann in onclick verwendet. Ist es falsch, die Entprellung (inline) direkt am Schaltflächenelement durchzuführen? </p>
就良好的编码实践而言,你应该避免在JSX中放置过多的业务逻辑。只需将你的
onClick
处理程序提取到JSX之外即可。其次,你不希望在防抖后返回
saveForm
。而是调用它。所以用saveForm
替换() => saveForm
。你还可以使用
useCallback
钩子。如果需要,我把使用useCallback
钩子的最佳实践留给你去探索。