Hola!
Implemente la solución aplicando useLayoutEffect.
Según la documentación funciona igual que useEffect, pero renderiza de forma síncrona.
import React, { useLayoutEffect } from 'react';
const Player = (props) => {
const { id } = props.match.params;
const hasPlaying = Object.keys(props.playing).length > 0;
useLayoutEffect(() => {
props.setVideoSource(id);
}, []);
return hasPlaying ? (
<section className='player'>
<video className='player__item' controls autoPlay>
<source src={props.playing.source} type='video/mp4' />
</video>
<div className='player__back'>
<button type='button' onClick={() => props.history.goBack()}>
Regresar
</button>
</div>
</section>
) : <NotFound />;
};
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?