Documentos de Académico
Documentos de Profesional
Documentos de Cultura
render() {
return (
<div className="App">
{
this.state.list.map(
/*(*/item/*)*/ =>
/*{return(//->return opcional*/
<div key={item.objectID}>
<span>
<a href={item.url}>{item.title}</a>
</span>
<span>{item.author}</span>
<span>{item.num_comments}</span>
<span>{item.points}</span>
</div>
/*})//fin return opcional*/
)
}
</div>
);
}
}
Usando Class
// ES5
this.state = {
list: list,
};
// ES6
this.state = {
list,
};
React Estados React Estados
Usando function Usando Class
constructor(props) {
this.state = {
const [counter, setCounter] = useState(initialValue); counter: props.initialValue,
};
}
Este es el caso si el estado se inicializa a un valor dinámico Aquí tenemos que acceder a la propiedad en el constructor
de una propiedad. e inicializar el estado usando
this.state.
<p> <p>
Counter: {counter} Counter: {this.state.counter}
</p> </p>
import React, { useState } from "react"; import React, { Component } from "react";
import { FaStar } from "react-icons/fa";
export default function StarRating({ totalStars = 5 }) { export default class StarRating extends Component {
const [selectedStars, setSelectedStars] = useState(0); constructor(props) {
return ( super(props);
<> this.state = {
{ createArray(totalStars).map( starsSelected: 0
(n, i) => ( };
<Star this.change = this.change.bind(this);
key={i} }
selected={selectedStars > i} change(starsSelected) {
onSelect={() => setSelectedStars(i + 1)} this.setState({ starsSelected });
/> }
) render() {
) const { totalStars } = this.props;
} const { starsSelected } = this.state;
<p> return (
{selectedStars} of {totalStars} stars <div>
</p> { [...Array(totalStars)].map(
</> (n, i) => (
); <Star
} key={i}
selected={i < starsSelected}
onClick={() => this.change(i + 1)}
/>
)
)
}
<p>
{starsSelected} of {totalStars} stars
</p>
</div>
);
}
}
//Profesor
Estados y Ciclo
components:
//En file Conceptos.jsx:
import React from "react"
//import {Component} from "react"
};
/*function disminuir(params) {
}*/
}
//Fin constructor
//Cuando monto componente pido algo al servidor y me voy, y ya no veré esa vista por eso lo pongo en State
componentWillUnmount() {
//Uno de sus usos -> borro todo lo que dejé guardado en el estado
}
//TODO ESTOS TEMAS ES LO QUE SE CONOCE COMO CICLO DEL COMPONENTE
/*MODO COMPLETO CON CALLBACK para usar el dato update por ahí mismo
//Observación cuando necesite usar inmediatamente ese count actualizado debe implementar o añadirle
//una callback osea quedaría así*/
this.setState( {count: this.state.count + 1} , () => {
console.log(this.state.count);
} )
/**///Fin con callback
};
const disminuir = () => {
this.setState({count: this.state.count - 1})
//Si se desea que no baje al llegar a 0 y se estanque se antepone this.state.count > 0 osea:
//this.state.count > 0 && this.setState({count: this.state.count - 1})
}
return(
<>
<h1>Contador con estados (forma con Clase)</h1>
<h3>{this.state.count}</h3>{/*<-SI Queda.<-esto funciona */}
{/*<h3>{this.count}</h3>*/}{/*<-NO le funcionó por ende volvió a lo que funciona*/}
<button onClick={disminuir}>-</button>
<button onClick={aumentar}>+</button>
</>
)
}
}
function App(){
return (
<div className="App">
<EstadosClase />
</div>
)
}
//fin File App.js
//WAY DATA
//CARPETA components
//ini Card.jsx:
const Card = (props) => {
return (
<>
<h3>{props.name}</h3>
<h3>{props.email}</h3>
</>
);
};
export default Card;
//fin Card
//ini Cards.jsx:
import Card from './Card'
//ini SearchBar.jsx
import { useState } from 'react';
return (
<>
<input type='text' onChange={handleChange} />
<button onClick={ ()=>{ props.onSearch(id) } }>Buscar</button>
</>
)
};
//HOOKS es para los funcionales, funciones de react que salvaran para hacerlo
//con functions components entonces hooks useState
import {useState} from 'react';
import Cards from './components/Cards';
import SearchBar from './components/SearchBar';
function App() {
/*constructor(props) {
super(props)
}*///<- Como no tengo constructor entonces
//[users, setUsers]<- distractory de array
const [users, setUsers] = useState([]);
//a partir de ahora tengo un estado llamado users que es un array vacio
//y setUsers es la funcion encargada de modificar ese estado y ya
//Con data
/*
const [users, setUsers] = useState([
{name: 'Jorge', email:'jvega@mail.com'},//<-quitamos esto y ahora lo traeremos de un servidor real
]);
*/
return (
<div className="App">
<SearchBar onSearch={searchUser} />
{/*users es el estado y se lo paso como props*/}
<Cards users={users} />
</div>
);
}