Réagir implict de retour dans un onClick

0

La question

J'ai donc été voir ce dans le code récemment. Un rendement implicite à partir d'un onClick

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

Est-ce un gros non? Ou est-il mieux? Toute entrée serait appréciée. Les deux semblent offrir le comportement désiré.

Évidemment, voici à quoi il ressemble sans le rendement implicite.

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

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

La meilleure réponse

1

Il ne fait pas une différence. Si vous ne voulez pas le rendement implicite tout en gardant une ligne de format, l'utilisation de la void mot-clé:

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

est-ce vrai???
peter flanagan

1

Il n'y a rien de mal avec le rendement implicite. L' onClick gestionnaire d'événement de la valeur de retour de ne pas obtenir utilisé par réagir. Pour les docs https://reactjs.org/docs/handling-events.html

Une autre différence est que vous ne pouvez pas revenir false pour éviter le comportement par défaut de Réagir. Vous devez appeler preventDefault explicitement.

Par conséquent, il n'a pas d'importance ce que votre gestionnaire retourne, ou si elle retourne rien du tout.

2021-11-23 16:01:20
1

La création d'un rappel sur chaque restituer à l'intérieur de balisage, en elle-même n'est pas la meilleure pratique. Retour à la question: la principale différence, comme vous l'avez mentionné, est entre la valeur de retour. Je doute de l' onClick API de Réagir ne changera jamais. Mais si dans le futur il y aura un certain type de valeur de retour attendue, c'est là que vous pouvez obtenir vous-même en quelques ennuis si vous NE retourner quelque chose.

La règle de base: si vous n'êtes pas invité à retourner quelque chose - ne fais pas ça.

2021-11-23 16:05:00

J'apprécie que vous l'avez souligné, il n'est pas une bonne idée de l'inclure cela dans le rendu.
Daniel Beck

Dans d'autres langues

Cette page est dans d'autres langues

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