Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

194
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!