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

129
Visualizações
Actualizar variable y usarla inmediatamente Reaccionar

Estoy tratando de actualizar una variable después de una llamada a la API, pero usaré un evento de clic para esta pregunta.

Como puede ver, la variable que imprimo usa el estado anterior en el primer clic, ya que aún no registra el cambio. En las siguientes llamadas, la variable se imprime con el nuevo texto.

¿Hay alguna forma de usar la variable actualizada inmediatamente dentro de la función changeText?

https://stackblitz.com/edit/react-36jqi3

 export default function App() { const [text, setText] = useState('inital text'); const changeText = () => { setText('new text'); console.log(text); }; return ( <div> <button onClick={changeText}>Update variable</button> </div> ); }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

No.

La función changeText que se está ejecutando actualmente se habrá cerrado sobre el valor del text del valor asignado durante el procesamiento que creó la función changeText .

La siguiente representación del componente generará una nueva función changeText y la asignará a onClick .

Si desea utilizar el valor que acaba de pasar a setState , guarde una copia de ese valor en otro lugar.

 const changeText = () => { const newValue = 'new text'; setText(newValue); console.log(newValue); };

Alternativamente, haga el trabajo que necesita el nuevo valor en un gancho de efecto que se activa cuando cambia ese valor.

 useEffect(() => { console.log(text); }, [text]); const changeText = () => { setText('new text'); };

Sin embargo, eso también activará el enlace en el renderizado inicial , por lo que es posible que desee agregar una prueba adicional para asegurarse de que no sea el valor inicial antes de iniciar sesión.

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede pasar.

 export default function App() { const [text, setText] = useState('inital text'); const changeText = () => { /* Calling updater to get the latest value. */ setText('new text'); setText((state) => { console.log("immediately updated text -->", state); return state; }); }; return ( <div> <button onClick={changeText}>Update variable</button> </div> ); }
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