informatica:programacion:javascript:react
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:javascript:react [2024/03/22 10:45] – [Resumen] tempwin | informatica:programacion:javascript:react [2024/03/22 12:19] (actual) – [Gestión de estados] tempwin | ||
|---|---|---|---|
| Línea 112: | Línea 112: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | ==== Gestión de estados ==== | ||
| + | |||
| + | Uso de //hooks//: | ||
| + | |||
| + | <code javascript> | ||
| + | import {useState} from " | ||
| + | import {DB} from " | ||
| + | import Product from " | ||
| + | |||
| + | export default function Index() { | ||
| + | const [libros, setLibros] = useState(DB.libros) | ||
| + | | ||
| + | const handlePrestar = (id) => () => { | ||
| + | const i_libro = libros.findIndex(l => l.id === id) | ||
| + | const libro = libros[i_libro] | ||
| + | setLibros([ | ||
| + | ...libros.slice(0, | ||
| + | {...libro, stock: libro.stock - 1 } | ||
| + | ...libros.slice(i_libro + 1) | ||
| + | ]) | ||
| + | } | ||
| + | | ||
| + | return ( | ||
| + | <> | ||
| + | <p className=" | ||
| + | <div id=" | ||
| + | {libros.map(({id, | ||
| + | <Product key={id} onPrestar={handlePrestar(id)} {...libro} /> | ||
| + | )} | ||
| + | </ | ||
| + | </> | ||
| + | ) | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
informatica/programacion/javascript/react.1711100712.txt.gz · Última modificación: por tempwin
