No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

18 Días
15 Hrs
10 Min
7 Seg
Curso de React.js

Curso de React.js

Juan David Castro Gallego

Juan David Castro Gallego

Estados de carga y error

19/34
Recursos

Aportes 11

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Por fin ya entendí como grabaron el curso

El VSC realmente solo es el 70% de la pantalla el 30% demás es agregado en edición al igual que sus elementos y lineas para que coincida, gran trabajo pero por unos pixeles y los símbolos duplicados me di de cuenta sin embargo es un gran avance

Dato curioso platzi esta hecho con react

Otra forma de realizar la logica para informarle a el usuario que debe crear un TODO es

!loading && !searchedTodos.length && 'Crea algún TODO'}

si es 0 es un valor Falsy y al negarlo se convierte en verdadero
https://developer.mozilla.org/en-US/docs/Glossary/Falsy

Dato curioso, de la siguiente manera se pueden importar las diferentes herramientas que nos provee React:

import React, { useState, useEffect } from "react";

quiero dar mi aporte dejo mi codigo aqui para que puedan entender el flujo de la app que explica el profe

import React from "react";
import { useEffect } from "react";
//custom Hooks
export const useLocalStorage = (itemName, initialValue)=>{
    //local storage
    const item_Todos = () => {
        /**
         * Retrieves the value of an item from the local storage. If the item does not exist, it sets the initial value for the item in the local storage and returns the initial value. If the item exists, it returns the value of the item from the local storage.
         * 
         * @returns {any} The value of the item from the local storage.
         */
        let localStorageItem = JSON.parse(localStorage.getItem(itemName));
        if (!localStorageItem) {
            localStorage.setItem(itemName, JSON.stringify(initialValue));
            return (localStorageItem = initialValue);
        } else {
            return localStorageItem;
        }
    };
    //state of react
    const [item, setItem] = React.useState(initialValue);
    const [loading, setLoading] = React.useState(true);
    const [error, setError] = React.useState(false);
    //useEffect
    useEffect(()=>{
        setTimeout(()=>{
            try {
                setItem(item_Todos());
                setLoading(false);
            } catch (error) {
                setLoading(false);
                setError(true);
            }
        }, 1800);
    },[])

    //almacenamiento en local storage
    const saveItem=(newItem)=>{
        localStorage.setItem(itemName, JSON.stringify(newItem));
        setItem(newItem);
    }
    return {item, saveItem, loading, error}
}
 
No sabia que se podia cambiar el nombre de las propiedade de un objeto al ser recibidas
Yo realice los pasos de esta clase y no me salieron los errores. que alegría. lo único es que nunca cargaron los Todos. salía el mensaje de cargar por tiempo infinito jeje. ![](https://static.platzi.com/media/user_upload/image-17c2156e-30e2-4988-aba1-ef9bd6d8363b.jpg)
Así mismo profe sabemos que es un poco complicado React JS pero se supone usted es el experto intente no mirar tanto la pantalla de apoyo en la que tiene el código ya escrito tal como lo hace en el minuto 8:47, Realmente Platzi esta dejando mucho que desear
Profe buenos días La verdad no sabe explicar, con todo respeto enfóquese en como hacer que el alumno entienda lo que usted esta tratando de enseñar, habla y dice palabras para usted mismo y usted mismo se las termina contestando, deje de palabrear
Solucion, aplique validaciones y el uso de useMemo para que esa lógica solo se ejecute en caso que las variables cambien ![](https://static.platzi.com/media/user_upload/image-89958b86-11db-41b4-9131-368b9157147b.jpg)![](https://static.platzi.com/media/user_upload/image-c4560341-bf67-428a-9f2f-d429ee52b355.jpg)