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

2K
Visualizações
¿Por qué el código dentro de useEffect se ejecuta dos veces para el primer renderizado?

Console.log se ejecuta dos veces. Debajo dijo que es para razonar Strict Mode :

React Hooks: useEffect() se llama dos veces incluso si se usa una matriz vacía como argumento

StrictMode representa los componentes dos veces (en desarrollo pero no en producción) para detectar cualquier problema con su código y advertirle sobre ellos (lo que puede ser muy útil).

¡Pero no entiendo por qué! Dice: in order to detect any problems with your code and warn you about them . Pero cual es el problema? ¿Y advertir sobre qué cosa?

¿Y hay alguna manera de deshacerse de eso (dos veces en ejecución) sin eliminar el Strict Mode de la aplicación?

es mi codigo:

 import {useEffect, useState} from "react"; import BlogList from "./BlogList"; const Home = () =>{ const [blogs, setBlogs] = useState([ { title: 'My new website', body: 'lorem ipsum...', author: 'mario', id: 1 }, { title: 'Welcome party!', body: 'lorem ipsum...', author: 'yoshi', id: 2 }, { title: 'Web dev top tips', body: 'lorem ipsum...', author: 'mario', id: 3 } ]); const [name, setName] = useState('mario'); const handleDelete = (id) => { const newBlogs = blogs.filter(blog => blog.id !== id); setBlogs(newBlogs); } useEffect(() => { console.log("useEffect is run"); console.log(name); },[name]); return( <div className="Home"> <BlogList blogs={blogs} title="All Blogs" handleDelete={handleDelete} /> <button onClick={() => setName('arman')}>Delete name</button> <p>{name}</p> </div> ); } export default Home;

El código completo:

https://codesandbox.io/s/interesante-buck-omruo8

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

0

StrictMode representa los componentes dos veces para detectar cualquier problema con su código durante el desarrollo. Deberías estar bien en producción. Si absolutamente no desea el procesamiento doble, simplemente elimine la etiqueta.

El modo estricto no puede detectar automáticamente los efectos secundarios, pero puede ayudarlo a detectarlos haciéndolos un poco más deterministas.

Nota: Esto solo se aplica al modo de desarrollo. Los ciclos de vida no se invocarán dos veces en el modo de producción.

React Docs: modo estricto

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