Bir onclick'te react implict dönüşü

0

Soru

Bu yüzden son zamanlarda bunu kod tabanında görüyorum. Bir örtük dönüş onClick

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

Bu büyük bir hayır-hayır mı? Ya da daha iyi? Buradaki herhangi bir girdi takdir edilecektir. Her ikisi de istenen davranışı sağlıyor gibi görünüyor.

Açıkçası, örtülü bir geri dönüş olmadan neye benzediği burada.

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

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

En iyi cevabı

1

Bir şey fark etmiyor. Tek satırlık biçimi korurken örtülü dönüşü istemiyorsanız,void kelime:

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

bu doğru mu???
peter flanagan

1

Örtük geri dönüşte yanlış bir şey yoktur. Bu onClick olay işleyicisinin dönüş değeri react tarafından kullanılmaz. Belgelere göre https://reactjs.org/docs/handling-events.html

Başka bir fark, geri dönememenizdir false react'te varsayılan davranışı önlemek için. Aramalısın preventDefault açıkça.

Bu nedenle, işleyicinizin ne döndürdüğü veya herhangi bir şey döndürüp döndürmediği önemli değildir.

2021-11-23 16:01:20
1

İşaretlemenin içindeki her render üzerinde bir geri arama oluşturmak, kendi başına en iyi uygulama değildir. Soruya geri dönelim: bahsettiğiniz gibi ana fark, dönüş değeri arasındadır. Şüphe ediyorum onClick React'in API'si hiç değişmeyecek. Ancak gelecekte beklenen bir dönüş değeri olacaksa-bir şeyi iade ederseniz kendinizi bazı sıkıntılara sokabileceğiniz yer burasıdır.

Başparmak kuralı: bir şeyi iade etmeniz istenmiyorsa-bunu yapmayın.

2021-11-23 16:05:00

Bunu görselleştirmeye dahil etmenin iyi bir fikir olmadığını belirttiğin için minnettarım.
Daniel Beck

Diğer dillerde

Bu sayfa diğer dillerde

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