Reagir upn implícito de retorno em uma onClick

0

Pergunta

Então, eu tenho visto isso no codebase recentemente. Um implícitas de retorno de um onClick

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

É este um grande não-não? Ou é melhor? Qualquer entrada aqui seria apreciada. Ambos parecem fornecer o comportamento desejado.

Obviamente, aqui é o que parece, sem a implícita de retorno.

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

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

Melhor resposta

1

Não faz diferença. Se você não quer implícitas de retorno, mantendo o formato de uma linha, use o void palavras-chave:

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

isso é verdade???
peter flanagan

1

Não há nada de errado com o return implícito. O onClick manipulador de eventos é o valor de retorno não usados pela reagir. De acordo com o google docs https://reactjs.org/docs/handling-events.html

Outra diferença é que você não pode voltar false para impedir que o comportamento padrão em Reagir. Você deve chamar preventDefault explicitamente.

Portanto, não importa o que o processador retorna, ou se devolve nada.

2021-11-23 16:01:20
1

A criação de uma chamada de retorno em cada processar dentro de marcação, em si, não é a melhor prática. De volta à questão: a principal diferença, como você mencionou, é entre o valor de retorno. Eu duvido que o onClick API de Reagir nunca vai mudar. Mas se, no futuro, haverá algum tipo de valor de retorno esperado - que é onde você pode obter-se em alguns problemas se você devolver algo.

A regra de ouro: se você não pediu para retornar algo - não faça isso.

2021-11-23 16:05:00

Eu aprecio o que você apontou não é uma boa idéia para embutir este na renderização.
Daniel Beck

Em outros idiomas

Esta página está em outros idiomas

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