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

107
Visualizações
¿Cómo calcular el valor predeterminado para reaccionar js state hook con una función?

Estoy haciendo algo como esto:

 function App() { const [state1, setState1] = useState([1,1,1,1,1,1]); const [state2, setState2] = useState(MyFunction()); return ( <div className="App"> <button onClick={() => setState1([1,2,3,4,5,6])}>test</button> </div> ); } const MyFunction= () => { alert("MyFunction"); return 5; }

Lo extraño es que la línea alert("MyFunction"); se activa 2 veces durante la carga y 2 veces con cada clic en el botón de prueba.

Soy muy nuevo en React.js y no entiendo este comportamiento.

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

0

Para responder tu pregunta:

¿Cómo calcular el valor predeterminado para reaccionar js state hook con una función?

useState permite una función como una 'fábrica de estado inicial', como por ejemplo:

 const [ state, setState ] = useState( function(){ return Math.random(); } );

Entonces, si desea usar MyFunction como fábrica, úselo de esta manera:

 const [ state2, setState2 ] = useState( MyFunction );

¿Por qué se llama a MyFunction en cada clic?

Un componente funcional de React es solo una función de javascript.

React decide cuándo llamar a esta función, que es básicamente cada vez que algo cambia. Una llamada de algún setState() es una de las razones por las que React volverá a llamar a la función del componente funcional (su función App() en este caso).

Pero le sugiero que considere llamar a la función App() "siempre que React quiera llamarla" o "todo el tiempo, una y otra vez" . Lo que significa que no debe confiar en cuándo se llama a la función del componente funcional, sino que debe confiar en las garantías que hace React con respecto a cuándo el estado está actualizado, específicamente useEffect , useState , ...

MyFunction() es solo una llamada de función, que está dentro de la llamada de función App() , por lo que, por supuesto, MyFunction() se llama cada vez que se llama a App() (que es "una y otra vez").

¿Por qué se llama a alert() dos veces?

El componente funcional se llama 2 veces en modo estricto . Esto causa un comportamiento inesperado solo si no está usando React como se supone que debe usarse (que es algo que solo sucede para los principiantes de React).

Si está utilizando React de la manera prevista, no debería preocuparse si la función se llama una, dos o varias veces. Lo único que cuenta es lo que es el estado.

Consulte también, por ejemplo , el constructor de la clase React.Component se ejecuta una vez sin console.log?

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