Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

306
Visualizações
¿Cuál es la forma correcta de pasar una función como Prop en React?

Hay algunas preguntas con una redacción similar pero ninguna que me ayude.

Tengo un componente principal que quiere pasar una función a un componente secundario a través de Props, y el componente secundario ejecutará la función dentro de su lógica. Sin embargo, ESLint me devuelve el error "Los accesorios JSX no deben usar las funciones reaccionar/jsx-no-bind ". Entiendo que esto es ineficiente porque la función se volverá a crear cada vez que el componente se vuelva a renderizar. ¿Cuál sería la forma correcta de hacer esto?

Componente principal

 function App() { const [recipes, setRecipes] = useState(sampleRecipes); function handleRecipeAdd() { const newRecipe = // some logic to create newRecipe here setRecipes([...recipes, newRecipe]); } return <RecipeList recipes={recipes} handleRecipeAdd={handleRecipeAdd} />; }

Componente hijo

 interface Props { handleRecipeAdd: () => void; } export default function RecipeList(props: Props) { const { handleRecipeAdd } = props; return ( <button onClick={handleRecipeAdd}> Add Recipe </button> ); }

Tenga en cuenta que este no es el código exacto para ambos componentes, se ha simplificado para eliminar el código irrelevante.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Muchas gracias a Robin Zigmond por señalarme el lugar correcto para mirar, esto se resolvió con el enlace useCallback. Para cualquiera que esté interesado, así es como se ve el código actualizado:

Componente principal

 function App() { const [recipes, setRecipes] = useState(sampleRecipes); const handleRecipeAdd = useCallback(() => { const newRecipe = // some logic to create newRecipe here setRecipes([...recipes, newRecipe]); }, [recipes]); return <RecipeList recipes={recipes} handleRecipeAdd={handleRecipeAdd} />; }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda