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

187
Views
Cómo almacenar el estado en cada actualización de estado en React

Digamos que tengo un componente principal que representa varios componentes secundarios en función de una matriz utilizando el método .map(). El uso de algunos componentes secundarios de entrada crea un objeto que devuelve con una función de devolución de llamada en la actualización del estado.

 const InputRows = () => { const [incomeObj, setIncomeObj] = useState({}); const fruits= ['apple' , 'orange', 'banana', 'pineapple']; return ( fruits.map((fruit, index)=> <tr key={index}> <InputRow fruit={fruit} number={index} setIncomeObj={setIncomeObj}/> </tr> )

Lo que debo hacer ahora es almacenar los objetos devueltos de todos los componentes secundarios dentro de un objeto para luego enviarlo como JSON.

He intentado varias formas de hacerlo, por ejemplo, algo como usar useEffect hook:

 let combinedIncomeObj = {}; useEffect(() => { Object.assign(combinedIncomeObj, incomeObj); console.log(combinedIncomeObj); }, [incomeObj]);

Pero, por supuesto, solo reemplaza los datos existentes en combineIncomeObj en cada actualización de estado, sin agregarlos. ¿Usar administradores estatales como Redux es la única forma de lograr mi objetivo? ¿O simplemente me estoy perdiendo algo?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Actualización: me di por vencido y decidí construir mi objeto JSON a partir de los datos de entrada al enviarlo, mucho más fácil y tiene más sentido.

about 4 years ago · Juan Pablo Isaza Report

0

Envíe los datos como una matriz de objetos como este [{ } , { } ] Simplemente siga el siguiente código

 const InputRows = () => { const [incomeObj, setIncomeObj] = useState([]); const fruits= ['apple' , 'orange', 'banana', 'pineapple']; const handleIncomeObj = (obj)=>{ setIncomeObj([...incomeObj,{...obj} ]); } return ( fruits.map((fruit, index)=> <tr key={index}> <InputRow fruit={fruit} number={index} setIncomeObj={obj=>hanleIncomeObj(obj)}/> </tr> )

Espero que le sea útil .

about 4 years ago · Juan Pablo Isaza Report

0

si desea agregar al objeto, puede usar la sintaxis extendida

 let combinedIncomeObj = {}; useEffect(() => { combinedIncomeObj = {...combinedIncomeObj, incomeObj} console.log(combinedIncomeObj); }, [incomeObj]);
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!