CursosEmpresasBlogLiveConfPrecios

Arreglando la funcionalidad del player

Clase 24 de 29 • Curso de React Router 5 y Redux

Clase anteriorSiguiente clase

Contenido del curso

Bienvenida al curso

  • 1
    Todo lo que aprenderás sobre React Router y Redux

    Todo lo que aprenderás sobre React Router y Redux

    01:30 min

¿Qué es React Router? y Aplicarlo en tus proyectos

  • 2
    ¿Qué es React Router y cómo instalarlo?

    ¿Qué es React Router y cómo instalarlo?

    02:54 min
  • 3
    Crear nuestro archivo de Rutas

    Crear nuestro archivo de Rutas

    07:33 min
  • 4
    Container: Login

    Container: Login

    10:29 min
  • 5
    Container: Register

    Container: Register

    06:28 min
  • 6
    Container: 404 Not Found

    Container: 404 Not Found

    06:43 min
  • 7
    Componente: Layout

    Componente: Layout

    05:10 min
  • 8
    Manejando enlaces y configuraciones

    Manejando enlaces y configuraciones

    06:33 min

¿Qué es Redux?

  • 9
    Qué es Redux

    Qué es Redux

    02:17 min
  • 10

    ¿Qué es Redux? Profundizando en la herramienta

    01:32 min
  • 11
    Instalación de Redux

    Instalación de Redux

    04:40 min
  • 12
    Creando el Store de Redux

    Creando el Store de Redux

    12:53 min

Aplicando Redux a nuestra aplicación

  • 13
    Creando los reducers

    Creando los reducers

    10:40 min
  • 14
    Finalizando reducers y eliminar favoritos

    Finalizando reducers y eliminar favoritos

    08:26 min
  • 15
    Debuggeando nuestro proyecto (agregando validaciones a nuestro componente card)

    Debuggeando nuestro proyecto (agregando validaciones a nuestro componente card)

    04:19 min
  • 16
    Crear Formulario de Login

    Crear Formulario de Login

    10:08 min
  • 17
    Formulario de Login con Redux

    Formulario de Login con Redux

    06:28 min
  • 18
    Creando un Servicio para Gravatar

    Creando un Servicio para Gravatar

    05:28 min
  • 19
    Uso de gravatar en nuestro proyecto

    Uso de gravatar en nuestro proyecto

    07:16 min
  • 20
    Validación para LogIn LogOut

    Validación para LogIn LogOut

    09:15 min
  • 21
    Register

    Register

    07:00 min
  • 22
    Register con Redux

    Register con Redux

    04:17 min
  • 23
    Vista general del player

    Vista general del player

    05:26 min
  • 24
    Arreglando la funcionalidad del player

    Arreglando la funcionalidad del player

    Viendo ahora
  • 25
    Terminando de detallar nuestro player

    Terminando de detallar nuestro player

    13:50 min
  • 26
    Validaciones

    Validaciones

    10:35 min
  • 27
    Validaciones de UI

    Validaciones de UI

    07:04 min
  • 28
    Debug con Redux Devtools

    Debug con Redux Devtools

    05:57 min

Cierre del curso

  • 29
    Cierre del Proyecto

    Cierre del Proyecto

    00:39 min
  • Tomar el examen del curso
    • Alejandro González Reyes

      Alejandro González Reyes

      student•
      hace 6 años

      Me siento como tonto,en este video vine a encontrar la solución a una pregunta que dejé en el video anterior. jajaja

        Juan Jose Vega

        Juan Jose Vega

        student•
        hace 6 años

        El curso de webpack con Leonidas es muy bueno.

        Mayerly Prieto Muñoz

        Mayerly Prieto Muñoz

        student•
        hace 5 años

        a mi también me paso, tarde horas buscando :(

      Andres Roberto Coello Goyes

      Andres Roberto Coello Goyes

      student•
      hace 6 años
      En las rutas. <Route exact path="/player/:id" component={Player} /> Recibe el id const { id } = props.match.params;
        Héctor Hugo Sandoval Marcelo

        Héctor Hugo Sandoval Marcelo

        student•
        hace 5 años

        Muchas gracias, me preguntaba donde se guardaba ese ID

        Felipe Agustín Martínez

        Felipe Agustín Martínez

        student•
        hace 3 años

        Tambien en las ultimas versiones de reac-router-dom se puede hacer uso del hook useParams

      Alan Alexis Arostegui Maranto

      Alan Alexis Arostegui Maranto

      student•
      hace 6 años
      Lo que hicimos fue enviar a nuestro player un id que se obtiene del render que se hace de los elementos para cada uno de los items del carousel y de esta manera transmitimos el id a nuestra url y ahi capturamos este valor para saber cual es el video que corresponde a ese id y poder presentarlo en el reproductor. Despues importamos los estilos. import '../assets/styles/components/Player.scss'; Quitamos el typo que teniamos en la className <div className="Player-back"> y en el boton agregamos la funcion que nos regresará a la pagina principal, esta funcion esta encapsulado en el browser router. <button type="button" onClick={() => props.history.goBack()}> Despues debemos reparar el compilado porque no lo lee por defecto el bundle.js Por lo tanto en webpack en output agregamos esta confiuguracion que nos dice que lo lea en el publicPath publicPath: '/', despues en el componente player debemos obtener el id que recibimos por parametros const { id } = props.match.params; Esto lo hace Router en el momento que nosotors generamos la ruta player:id y asi hacer un match con los parametros que recibimos y de esta forma buscamos el video que corresponde a ese id.```
        José Armando Gutiérrez Araujo

        José Armando Gutiérrez Araujo

        student•
        hace 5 años

        Es decir que el id al pasarlo por una ruta usando Router, lo almacena en un objeto params dentro de una propiedad match dentro de props?

      Claudio Quiroz

      Claudio Quiroz

      student•
      hace 5 años

      use el doble destrusturing y me quedó así

      const {history, match: {params: {id}}} = props;
      Andrés Campuzano Garzón

      Andrés Campuzano Garzón

      student•
      hace 6 años

      🦄 Acá el código trabajado hasta el momento: https://github.com/AndresCampuzano/React-Router-and-Redux/commits/master

      Cristian Iñiguez

      Cristian Iñiguez

      student•
      hace 5 años

      Si el eslint les marca advertencia al obtener el id de la ruta pueden hacer esto:

      const { match: { params: { id } } } = props;
        Jorge Alberto Rodriguez Flores

        Jorge Alberto Rodriguez Flores

        student•
        hace 5 años

        Aplicando muy bien el object destructuring. 👏

      Edgar Andrés Angrino Lafaux

      Edgar Andrés Angrino Lafaux

      student•
      hace 4 años

      19 de Enero 2022 react-router-dom

      Debido a los cambios de modulo ahora hay que utilizar lo siguiente para volver atras

      import { useNavigate } from "react-router-dom"; const navigate = useNavigate() onClick={() => navigate('../')}
      Gonzalo Pimentel

      Gonzalo Pimentel

      student•
      hace 5 años

      Yo solucioné lo del botón de regresar encapsulandolo en un <Link>:

      Screenshot at 12-34-16.png

        Juan Daniel Martínez Navarro

        Juan Daniel Martínez Navarro

        student•
        hace 5 años

        Por supuesto que es válida tu solución, pero si nos vamos a términos de HTML, no es la forma correcta ni buena práctica para hacerlo de esta forma. Lo puedes hacer simplemenete con el la pura etiqueta <Link/> que equivale a un <a> y darle estilo para que parezca botón, o como lo hicimos en el video directamente de la etiqueta <button> y darle un onclick 😉

        Jeith S Carrillo A

        Jeith S Carrillo A

        student•
        hace 5 años

        desde UX no es buena practica. ya que si mas adelante haces otro index para acceder al video el atras no funcionara como uno esperaria. siempre es mejor dejar un go back

      Luis Fernando Méndez González

      Luis Fernando Méndez González

      student•
      hace 5 años

      Yo ya habia importado Link y react-router-dom para hacer el botón de regresar jajajaja Buen truco el de props.history.goBack()

        Andrés Felipe Eslava Zuluaga

        Andrés Felipe Eslava Zuluaga

        student•
        hace 5 años

        Nos pasó lo mismo jajaja y sí, me gustó ese truco

      Andres Miguel Hernandez Garcia

      Andres Miguel Hernandez Garcia

      student•
      hace 4 años

      Recomendacion ver el curso de WebPack

      Agustín Lanusse

      Agustín Lanusse

      student•
      hace 5 años

      Encontré una manera distinta de obtener el parámetro id de la url:

      import { useParams } from 'react-router-dom'; const { id } = useParams();
      Samuel Jose Vega Do Lugar

      Samuel Jose Vega Do Lugar

      student•
      hace 4 años

      Hola, para aquellos que están haciendo el curso en 2022, no usen Link en vez de go back; en uno de los comentarios de esta clase dicen que es una mala práctica. Encontré este vídeo con una solución muy simple para usar algo similar a goBack() https://www.youtube.com/watch?v=vwyInhbxGyg. Pasos:

      1. import { useNavigate } from "react-router-dom";

      2. Dentro de la constante Player, creamos:

        const navigate = useNavigate();

      3. <button type="button" onClick={() => navigate(-1)}> Regresar

      </button>
        Betsabet Geraldine Rojas Medina

        Betsabet Geraldine Rojas Medina

        student•
        hace 4 años

        Genial !! me sirvio c:

      Juan Ventrone

      Juan Ventrone

      student•
      hace 5 años

      Soy el unico que le sucede esto?

      Opera Snapshot_2020-12-15_211609_localhost.png

        Jeith S Carrillo A

        Jeith S Carrillo A

        student•
        hace 5 años

        ojo donde pusiste la ruta en el link. siempre deja el 404 de ultimo, por si acaso muestra tu url

      Camilo Morales Sanchez

      Camilo Morales Sanchez

      student•
      hace 5 años

      buenas compañeros, yo me pregunto, porque al player no le pinta el header ni el footer... estoy algo perdido en ese tema :(, alguien me podría explicar porque no y como se podria hacer que pinten....

        Juan Camilo Guzman Sandoval

        Juan Camilo Guzman Sandoval

        student•
        hace 5 años

        Si estan pero en los estilos hizo que se pusiera encima, con el position absolute

      Enmanuel castillo

      Enmanuel castillo

      student•
      hace 6 años

      Una consulta, hasta ahora hemos visto que creamos un componente al crear una variable y asignarle una función con arrow-function , pero no hemos hecho una clase que extienda de React.Component. Mi pregunta, al final de todo funciona igual, o tiene otros uso el uso de “class Component extends React.Component”

        Alexis Alberto Texis Auza

        Alexis Alberto Texis Auza

        student•
        hace 6 años

        Hola Emanuel,no hay ningun problema en usar la api de clases,lo puedes usar.

        En este curso se crean componentes funcionales,debido a que ahora podemos crear estado en ellos, gracias a la api de hooks

        Solo recuerda si vas a usar componentes que extienden de class es porque queras gestionar o manejar la logica o funcionalidad.

        Por ejemplo : proveer datos comportamiento de hijos(componentes funcionales) etc

        Gabriel De Andrade

        Gabriel De Andrade

        student•
        hace 6 años

        A este punto no hay demasiadas cosas que los componentes funcionales no puedan hacer. Antes se usaban clases para manejar el ciclo de vida pero desde que se introdujeron los hooks puedes hacer casi todo lo que podías hacer en componentes de clases en componentes funcionales.   De todas maneras si quieres aprender más sobre los componentes de clases y todo eso en el Curso de React se trabaja con ellos y en la documentación de React se explica súper bien

      Jeferson Velásquez

      Jeferson Velásquez

      student•
      hace 5 años

      El error del bundle ocurriría también si hubiesemos utilizado

      npx create-react-app

      🧐?

      Juan Esteban Mejia Ortiz

      Juan Esteban Mejia Ortiz

      student•
      hace 5 años

      Al ver las modificaciones en el archivo webpack, ¿que debería hacer uno si creó el proyecto con create-react-app? ¿qué es lo más apropiado?

        Bernardo Ayala Montezuma

        Bernardo Ayala Montezuma

        student•
        hace 5 años

        Hola esmejia!

        Mi opinión es que trates de aprender como configurar tú mismo tu ambiente de desarrollo con Webpack desde cero. Al principio parece lo más complicado del mundo, pero cuando le agarras el hilo es una maravilla. Puedes incluso revisar las configuraciones que te creó el create-react-app como base para hacer las tuyas propias.

        Ahora esto no significa que esté mal iniciar un proyecto de React con ese comando. A mi lo que me parece es que cuando lo uso muchas veces no sé el porqué de muchas de las configuraciones, así que prefiero hacerlas yo.

      WALTER DANIEL CUELLAR RESTREPO

      WALTER DANIEL CUELLAR RESTREPO

      student•
      hace 3 años

      Este curso me ha parecido genial, he entendido fácilmente redux, ya que vengo del curso profesional de redux y no me quedaban algunas cosas claras.

      Jeferson Velásquez

      Jeferson Velásquez

      student•
      hace 5 años
      20-funcionalidad-player.png
      Israel Urbina

      Israel Urbina

      student•
      hace 6 años

      al revisar los archivos del proyecto me doy cuenta que la parte del header cambio usando imports como classname y PropTypes

      y no se ni en cual clase paso eso ._, falta un vídeo o algo ?

        Gabriel De Andrade

        Gabriel De Andrade

        student•
        hace 6 años

        Hola Israel! Eso lo vemos en la clase PropTypes en el Curso Práctico de React.JS que es el curso anterior a este :D

        Israel Urbina

        Israel Urbina

        student•
        hace 6 años

        Si Gabriel jaja como me tome un descanso se me fue un poco el hilo pero al revisar el código de mi aplicación vi que lo tenia en otros componentes ya implementado xD gracias jaja

    Escuelas

    • Desarrollo Web
      • Fundamentos del Desarrollo Web Profesional
      • Diseño y Desarrollo Frontend
      • Desarrollo Frontend con JavaScript
      • Desarrollo Frontend con Vue.js
      • Desarrollo Frontend con Angular
      • Desarrollo Frontend con React.js
      • Desarrollo Backend con Node.js
      • Desarrollo Backend con Python
      • Desarrollo Backend con Java
      • Desarrollo Backend con PHP
      • Desarrollo Backend con Ruby
      • Bases de Datos para Web
      • Seguridad Web & API
      • Testing Automatizado y QA para Web
      • Arquitecturas Web Modernas y Escalabilidad
      • DevOps y Cloud para Desarrolladores Web
    • English Academy
      • Inglés Básico A1
      • Inglés Básico A2
      • Inglés Intermedio B1
      • Inglés Intermedio Alto B2
      • Inglés Avanzado C1
      • Inglés para Propósitos Específicos
      • Inglés de Negocios
    • Marketing Digital
      • Fundamentos de Marketing Digital
      • Marketing de Contenidos y Redacción Persuasiva
      • SEO y Posicionamiento Web
      • Social Media Marketing y Community Management
      • Publicidad Digital y Paid Media
      • Analítica Digital y Optimización (CRO)
      • Estrategia de Marketing y Growth
      • Marketing de Marca y Comunicación Estratégica
      • Marketing para E-commerce
      • Marketing B2B
      • Inteligencia Artificial Aplicada al Marketing
      • Automatización del Marketing
      • Marca Personal y Marketing Freelance
      • Ventas y Experiencia del Cliente
      • Creación de Contenido para Redes Sociales
    • Inteligencia Artificial y Data Science
      • Fundamentos de Data Science y AI
      • Análisis y Visualización de Datos
      • Machine Learning y Deep Learning
      • Data Engineer
      • Inteligencia Artificial para la Productividad
      • Desarrollo de Aplicaciones con IA
      • AI Software Engineer
    • Ciberseguridad
      • Fundamentos de Ciberseguridad
      • Hacking Ético y Pentesting (Red Team)
      • Análisis de Malware e Ingeniería Forense
      • Seguridad Defensiva y Cumplimiento (Blue Team)
      • Ciberseguridad Estratégica
    • Liderazgo y Habilidades Blandas
      • Fundamentos de Habilidades Profesionales
      • Liderazgo y Gestión de Equipos
      • Comunicación Avanzada y Oratoria
      • Negociación y Resolución de Conflictos
      • Inteligencia Emocional y Autogestión
      • Productividad y Herramientas Digitales
      • Gestión de Proyectos y Metodologías Ágiles
      • Desarrollo de Carrera y Marca Personal
      • Diversidad, Inclusión y Entorno Laboral Saludable
      • Filosofía y Estrategia para Líderes
    • Diseño de Producto y UX
      • Fundamentos de Diseño UX/UI
      • Investigación de Usuarios (UX Research)
      • Arquitectura de Información y Usabilidad
      • Diseño de Interfaces y Prototipado (UI Design)
      • Sistemas de Diseño y DesignOps
      • Redacción UX (UX Writing)
      • Creatividad e Innovación en Diseño
      • Diseño Accesible e Inclusivo
      • Diseño Asistido por Inteligencia Artificial
      • Gestión de Producto y Liderazgo en Diseño
      • Diseño de Interacciones Emergentes (VUI/VR)
      • Desarrollo Web para Diseñadores
      • Diseño y Prototipado No-Code
    • Contenido Audiovisual
      • Fundamentos de Producción Audiovisual
      • Producción de Video para Plataformas Digitales
      • Producción de Audio y Podcast
      • Fotografía y Diseño Gráfico para Contenido Digital
      • Motion Graphics y Animación
      • Contenido Interactivo y Realidad Aumentada
      • Estrategia, Marketing y Monetización de Contenidos
    • Desarrollo Móvil
      • Fundamentos de Desarrollo Móvil
      • Desarrollo Nativo Android con Kotlin
      • Desarrollo Nativo iOS con Swift
      • Desarrollo Multiplataforma con React Native
      • Desarrollo Multiplataforma con Flutter
      • Arquitectura y Patrones de Diseño Móvil
      • Integración de APIs y Persistencia Móvil
      • Testing y Despliegue en Móvil
      • Diseño UX/UI para Móviles
    • Diseño Gráfico y Arte Digital
      • Fundamentos del Diseño Gráfico y Digital
      • Diseño de Identidad Visual y Branding
      • Ilustración Digital y Arte Conceptual
      • Diseño Editorial y de Empaques
      • Motion Graphics y Animación 3D
      • Diseño Gráfico Asistido por Inteligencia Artificial
      • Creatividad e Innovación en Diseño
    • Programación
      • Fundamentos de Programación e Ingeniería de Software
      • Herramientas de IA para el trabajo
      • Matemáticas para Programación
      • Programación con Python
      • Programación con JavaScript
      • Programación con TypeScript
      • Programación Orientada a Objetos con Java
      • Desarrollo con C# y .NET
      • Programación con PHP
      • Programación con Go y Rust
      • Programación Móvil con Swift y Kotlin
      • Programación con C y C++
      • Administración Básica de Servidores Linux
    • Negocios
      • Fundamentos de Negocios y Emprendimiento
      • Estrategia y Crecimiento Empresarial
      • Finanzas Personales y Corporativas
      • Inversión en Mercados Financieros
      • Ventas, CRM y Experiencia del Cliente
      • Operaciones, Logística y E-commerce
      • Gestión de Proyectos y Metodologías Ágiles
      • Aspectos Legales y Cumplimiento
      • Habilidades Directivas y Crecimiento Profesional
      • Diversidad e Inclusión en el Entorno Laboral
      • Herramientas Digitales y Automatización para Negocios
    • Blockchain y Web3
      • Fundamentos de Blockchain y Web3
      • Desarrollo de Smart Contracts y dApps
      • Finanzas Descentralizadas (DeFi)
      • NFTs y Economía de Creadores
      • Seguridad Blockchain
      • Ecosistemas Blockchain Alternativos (No-EVM)
      • Producto, Marketing y Legal en Web3
    • Recursos Humanos
      • Fundamentos y Cultura Organizacional en RRHH
      • Atracción y Selección de Talento
      • Cultura y Employee Experience
      • Gestión y Desarrollo de Talento
      • Desarrollo y Evaluación de Liderazgo
      • Diversidad, Equidad e Inclusión
      • AI y Automatización en Recursos Humanos
      • Tecnología y Automatización en RRHH
    • Finanzas e Inversiones
      • Fundamentos de Finanzas Personales y Corporativas
      • Análisis y Valoración Financiera
      • Inversión y Mercados de Capitales
      • Finanzas Descentralizadas (DeFi) y Criptoactivos
      • Finanzas y Estrategia para Startups
      • Inteligencia Artificial Aplicada a Finanzas
      • Domina Excel
      • Financial Analyst
      • Conseguir trabajo en Finanzas e Inversiones
    • Startups
      • Fundamentos y Validación de Ideas
      • Estrategia de Negocio y Product-Market Fit
      • Desarrollo de Producto y Operaciones Lean
      • Finanzas, Legal y Fundraising
      • Marketing, Ventas y Growth para Startups
      • Cultura, Talento y Liderazgo
      • Finanzas y Operaciones en Ecommerce
      • Startups Web3 y Blockchain
      • Startups con Impacto Social
      • Expansión y Ecosistema Startup
    • Cloud Computing y DevOps
      • Fundamentos de Cloud y DevOps
      • Administración de Servidores Linux
      • Contenerización y Orquestación
      • Infraestructura como Código (IaC) y CI/CD
      • Amazon Web Services
      • Microsoft Azure
      • Serverless y Observabilidad
      • Certificaciones Cloud (Preparación)
      • Plataforma Cloud GCP

    Platzi y comunidad

    • Platzi Business
    • Live Classes
    • Lanzamientos
    • Executive Program
    • Trabaja con nosotros
    • Podcast

    Recursos

    • Manual de Marca

    Soporte

    • Preguntas Frecuentes
    • Contáctanos

    Legal

    • Términos y Condiciones
    • Privacidad
    • Tyc promociones
    Reconocimientos
    Reconocimientos
    Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
    Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
    Logo reconocimientoPrimera Startup EdTech · 2018
    Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
    Logo reconocimientoCEO Mejor Emprendedor del año · 2024
    De LATAM conpara el mundo
    YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads