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

139
Views
Convierta el código en componente de función en componente de clase

Tengo este código de reacción js y estoy tratando de convertir el siguiente código en un componente de clase

No sé cómo hacerlo. Si alguien puede crear un entorno limitado que funcione, será útil.

 import React, { useEffect, useState } from "react"; import "./styles.css"; const data = [ { id: "1", name: "Jane", lastName: "Doe", age: "25" }, { id: "2", name: "James", lastName: "Doe", age: "40" }, { id: "3", name: "Alexa", lastName: "Doe", age: "27" }, { id: "4", name: "Jane", lastName: "Brown", age: "40" } ]; export default function App() { const [peopleInfo, setPeopleInfo] = useState({}); const toggleHandler = (item) => () => { setPeopleInfo((state) => ({ ...state, [item.id]: state[item.id] ? null : { id: item.id, first: item.name, last: item.lastName, age: item.age } })); }; useEffect(() => { console.log(peopleInfo); }, [peopleInfo]); return ( <div className="App"> <table> <tr> {data.map((item) => { return ( <div key={item.id} style={{ display: "flex", width: "150px" }} > <input onChange={toggleHandler(item)} checked={peopleInfo[item.id]} style={{ margin: "20px" }} type="checkbox" /> <td style={{ margin: "20px" }}>{item.name}</td> <td style={{ margin: "20px" }}>{item.lastName}</td> <td style={{ margin: "20px" }}>{item.age}</td> </div> ); })} </tr> </table> </div> ); }

Tengo este código de reacción js y estoy tratando de convertir el siguiente código en un componente de clase

No sé cómo hacerlo. Si alguien puede crear un entorno limitado que funcione, será útil. Tengo este código de reacción js y estoy tratando de convertir el siguiente código en un componente de clase.

No sé cómo hacerlo. Si alguien puede crear un entorno limitado que funcione, será útil.

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

0

  1. El método de ciclo de vida componentDidUpdate corresponde al gancho useEffect .

  2. El método de render debe devolver el JSX que se representará desde el componente de clase.

  3. El método this.setState está disponible al extender la clase Component (desde el encadenamiento de prototipos).

Este será el componente de clase correspondiente.

 import React, { Component } from "react"; const data = [ { id: "1", name: "Jane", lastName: "Doe", age: "25" }, { id: "2", name: "James", lastName: "Doe", age: "40" }, { id: "3", name: "Alexa", lastName: "Doe", age: "27" }, { id: "4", name: "Jane", lastName: "Brown", age: "40" } ]; export default class App extends Component { state = {}; toggleHandler = (item) => () => { this.setState((state) => ({ ...state, [item.id]: state[item.id] ? null : { id: item.id, first: item.name, last: item.lastName, age: item.age } })); }; componentDidUpdate() { console.log(this.state); } render() { return ( <div className="App"> <table> <tr> {data.map((item) => { return ( <div key={item.id} style={{ display: "flex", width: "150px" }} > <input onChange={this.toggleHandler(item)} checked={this.state[item.id]} style={{ margin: "20px" }} type="checkbox" /> <td style={{ margin: "20px" }}>{item.name}</td> <td style={{ margin: "20px" }}>{item.lastName}</td> <td style={{ margin: "20px" }}>{item.age}</td> </div> ); })} </tr> </table> </div> ); } }

Editar práctico-keller-nby4s0

about 4 years ago · Juan Pablo Isaza Report

0

Se llamará a ComponentDidUpdate cuando cada uno se vuelva a renderizar con la actualización de estado.

 import "./styles.css"; import React from "react"; const data = [ { id: "1", name: "Jane", lastName: "Doe", age: "25" }, { id: "2", name: "James", lastName: "Doe", age: "40" }, { id: "3", name: "Alexa", lastName: "Doe", age: "27" }, { id: "4", name: "Jane", lastName: "Brown", age: "40" } ]; export default class App extends React.Component { state = { peopleInfo: {} }; toggleHandler(item) { this.setState({ peopleInfo: { ...this.state.peopleInfo, [item.id]: this.state.peopleInfo[item.id] ? null : { id: item.id, first: item.name, last: item.lastName, age: item.age } } }); } componentDidUpdate() { console.log(this.state.peopleInfo); } render() { return ( <div className="App"> <table> <tr> {data.map((item) => { return ( <div key={item.id} style={{ display: "flex", width: "150px" }} > <input onChange={() => this.toggleHandler(item)} checked={this.state.peopleInfo[item.id]} style={{ margin: "20px" }} type="checkbox" /> <td style={{ margin: "20px" }}>{item.name}</td> <td style={{ margin: "20px" }}>{item.lastName}</td> <td style={{ margin: "20px" }}>{item.age}</td> </div> ); })} </tr> </table> </div> ); } }

CódigoSandBox

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!