Eu estava lendo a documentação novamente, não está claro para mim a diferença entre definir um ref como um retorno de chamada e uma string:
<input ref={input => this._input = input} />
vs <input ref="input" />
Alguém pode me esclarecer por favor?
Se você definir ref como uma string, ele estará disponível no objeto this.refs
, por exemplo, this.refs.input
.
Se você definir uma referência de retorno de chamada, poderá fazer qualquer coisa com ela, incluindo salvá-la em this
se desejar.
A string refs eventualmente será descontinuada. Refs de retorno de chamada foram introduzidos posteriormente, mas cobrem todos os casos de uso de refs de string e não têm algumas de suas desvantagens. Eu sugiro que você sempre use referências de retorno de chamada no novo código que você escrever.
No futuro, considere fazer perguntas no StackOverflow. Não consideramos oficialmente o rastreador de problemas como um fórum de suporte e, infelizmente, a pesquisa do GitHub não funciona tão bem quanto a pesquisa do StackOverflow, então é provável que alguém pergunte isso novamente. Ao passo que, se você postasse isso no StackOverflow, é provável que você recebesse uma boa resposta, sua pergunta seria votada e mais pessoas teriam aprendido com ela e encontrado no futuro.
Obrigado novamente @gaearon. Vou usar StackOverflow na próxima vez.
Sem problemas! Sinta-se à vontade para enviar uma solicitação pull para a documentação se achar que podemos deixar mais óbvio que recomendamos o padrão de referência de retorno de chamada no novo código.
Comentários muito úteis
Se você definir ref como uma string, ele estará disponível no objeto
this.refs
, por exemplo,this.refs.input
.Se você definir uma referência de retorno de chamada, poderá fazer qualquer coisa com ela, incluindo salvá-la em
this
se desejar.A string refs eventualmente será descontinuada. Refs de retorno de chamada foram introduzidos posteriormente, mas cobrem todos os casos de uso de refs de string e não têm algumas de suas desvantagens. Eu sugiro que você sempre use referências de retorno de chamada no novo código que você escrever.
No futuro, considere fazer perguntas no StackOverflow. Não consideramos oficialmente o rastreador de problemas como um fórum de suporte e, infelizmente, a pesquisa do GitHub não funciona tão bem quanto a pesquisa do StackOverflow, então é provável que alguém pergunte isso novamente. Ao passo que, se você postasse isso no StackOverflow, é provável que você recebesse uma boa resposta, sua pergunta seria votada e mais pessoas teriam aprendido com ela e encontrado no futuro.