Sabemos que no podemos mutar constante, por esto usaremos el hook
de useState
Hay un snippet escribiendo useState + tab
(es el
que sale en morado o dice auto import from reat para que importe
correctamente el useState)
Luego de que la importacion este hecha usar el snippet
useState
para que nos cree la estructura mas rapido
(state,setState) y listo para modificar GG.
Evitar usar el push para eso importamos el useState (setCategories
en el ejemplo)
Si usamos directamente el setCategories estamos mandando un string
a un array y esta mal...
Debemos enviar un array al array para no tener errores
(Caso 1)
Posicion de los elementos de las listas:
Segun necesitemos en que lugar aparezcan los nuevos elementos de
las listas podemos escribir el codigo para que aparezcan al
principio(Caballeros del Zodiaco) o al final del array (Pokemon)
Segun el codigo quedaria asi mi lista
1. Caballeros del Zodiaco
2. One Punch
3. Samurai X
4. Dragon Ball
5. Pokemon
(Caso 2)
Callbacks para enviar un elemento:
Tambien se pueden tratar como Callbacks Quedaria asi nuestra lista
1. Caballeros del Zodiaco
2. One Punch
3. Samurai X
4. Dragon Ball
5. Pokemon
6. My Hero Academia
// Archivo GifExpert.jsx
import { useState } from 'react';
const GifExpertApp = () => {
// const categories = ['One Punch', 'Samurai X', 'Dragon Ball'];
const [categories, setCategories] = useState([
'One Punch',
'Samurai X',
'Dragon Ball',
]);
const handleAdd = () => {
// Caso 1
setCategories([...categories, 'Pokemon']);
setCategories(['Caballeros del Zodiaco', ...categories]);
// Caso 2
setCategories((cats) => [...cats, 'My Hero Academia']);
};
return (
<>
<h2>GifExpertApp </h2>
<hr />
<button onClick={handleAdd}>Agregar</button>
<ol>
{categories.map((category) => {
return <li key={category}> {category} </li>;
})}
</ol>
</>
);
};
export default GifExpertApp;