Reacționează implict a reveni într-un onClick

0

Problema

Așa că am văzut acest lucru în codebase recent. O întoarcere implicit la o onClick

<Button onClick={() => history.push('/urlTing') }>
   Ting
</Button>

Este un mare nu-nu? Sau e mai bine? Orice intrare aici ar fi de apreciat. Ambele par a oferi comportamentul dorit.

Evident, aici este ceea ce pare fără întoarcere implicit.

<Button onClick={() => {
   history.push('/urlTing'); 
}}>
   Ting
</Button>

ecmascript-6 javascript reactjs
2021-11-23 15:57:42
3

Cel mai bun răspuns

1

Ea nu face o diferență. Dacă nu vrei întoarcere implicit, păstrând o linie format, utilizați void cuvinte cheie:

<Button onClick={() => void history.push('/urlTing') }>
   Ting
</Button>
2021-11-23 17:27:54

este adevărat acest lucru???
peter flanagan

1

Nu este nimic în neregulă cu întoarcere implicit. La onClick event handler valoarea returnata nu te obișnuiești de a reacționa. Pe docs https://reactjs.org/docs/handling-events.html

O altă diferență este că nu se pot returna false pentru a preveni comportamentul implicit în a Reacționa. Trebuie să sunați preventDefault în mod explicit.

Prin urmare, nu contează ce handler-ul se întoarce, sau dacă nu se întoarce nimic, la toate.

2021-11-23 16:01:20
1

Crearea unui apel invers pe fiecare render interior marcare, în sine, nu este cea mai bună practică. Înapoi la întrebarea: principala diferență, după cum ați menționat, este între valoarea de returnare. Mă îndoiesc onClick API de a Reacționa se va schimba vreodată. Dar dacă, în viitor, nu va fi un fel de valoare de retur de așteptat - că e în cazul în care puteți obține te în necazuri dacă FACI ceva.

Regula de degetul mare: dacă nu sunteți rugat să se întoarcă ceva - nu face asta.

2021-11-23 16:05:00

Apreciez că ai subliniat nu e o idee bună să inline asta in render.
Daniel Beck

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................