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

199
Visualizações
¿La variable usestate muestra un valor indefinido?

Recibo un error indefinido en la variable de value que es un estado. al registrar el value en la consola, inicialmente toma el valor de props.value dentro de useEffect . Pero luego, en los renderizados simultáneos, se escribe undefined , así que supongo que la variable de value se vuelve indefinida después de eso. Pero este problema no existe cuando se elimina el código value.length . entonces el error indefinido no ocurre y props.value está dentro del área de texto. Pero necesito el código value.length para determinar algunas clases de CSS. Por lo tanto, supongo que antes de que la variable de valor sea establecida por props.value , value.length code runs. But then the state default is set as "" so que value.length` debería devolver 0 incluso si se ejecuta primero, ¿verdad? Entonces, no entiendo por qué el valor de mi variable de estado se vuelve indefinido en el medio.

 import React, { useState, useEffect } from "react"; const TextArea = (props) => { const [value, setValue] = useState(""); useEffect(() => { window.sessionStorage.setItem(props.name, value); }, [value, props]); useEffect(() => { setValue(props.value); }, [props.value]); return ( <div className="input-box input-box--3"> <textarea required name={props.name} type="text" rows={props.rows} value={value} onChange={(event) => setValue(event.target.value)} className={ console.log(value) // value.length === 0 // ? "input-box--field input-box--field--3" // : "input-box--field input-box--field--3 input-box--field--3--not-empty" } autoComplete={props.autoComplete} /> <span className={ value.length === 0 ? "input-box--placeholder" : "input-box--placeholder input-box--placeholder--not-empty" } > {props.placeholder} </span> </div> ); }; export default TextArea;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El valor depende de la propiedad de value , por lo que si pasa algo en esta propiedad, debería funcionar:

https://codesandbox.io/s/mystifying-cartwright-x6ldj0?file=/src/App.js

Sin embargo, puede hacerlo más a prueba de balas verificando si el accesorio pasado no está definido:

 setValue(props.value ? props.value : "");
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