Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

140
Views
Envolver función en useCallback

En el fragmento de código a continuación, me gustaría sacar esta función de jsx y envolverla en useCallback.

 {suggestedTags.length ? ( <div className={classes.tagSuggestionWrapper}> {suggestedTags.map((tag) => { return (<div key={tag} onClick={() => { selectTag(tag) }}>{tag}</div> ); })} </div> ) : null }

De lo contrario, se crea una nueva función para cada elemento en cada renderizado.

Entiendo que esto puede complicar el código y puede no ser recomendable. Pero tengo que hacerlo. pido tu consejo

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tu puedes hacer:

 const selectTag = useCallback((tag) => { setTags((prevState) => [...prevState, tag]); setSuggestedTags([]); setInput(""); }, [])

Poco sobre useCallback

Tenga en cuenta que si hubiera usado alguna variable de estado o accesorio, debería haberla incluido en la matriz de dependencia. Una matriz de dependencias vacía asegura que la referencia selectTag permanecerá igual una vez que se monte el componente.

Y ninguna matriz de dependencia es lo mismo que no usar useCallback en absoluto

Eliminando la función de flecha

Puede eliminar la función de flecha pasando el valor mediante la función de evento onClick :

 const selectTag = (event) => { const tag = event.target.name setTags((prevState) => [...prevState, tag]); setSuggestedTags([]); setInput(""); } return ( {suggestedTags.length ? ( <div className={classes.tagSuggestionWrapper}> {suggestedTags.map((tag) => { return (<div key={tag} name={tag} className={classes.tagSuggestion} onClick={selectTag}>{tag}</div> ); })} </div> ) : null } </div> );
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!