Básicamente, estoy tratando de enrutar a un usuario en función de si la página existe o no. Así que traté de hacer una declaración if para verificar el perfil de profileExists . Si es cierto, se quedaría en la misma página. De lo contrario, redirigiría al usuario a otra ruta, que es la ruta /homepage . Me preguntaba si esto está bien en React o no. Por favor, vea el código a continuación:
renderWithRoot(component) { const { classes, profileExists, history } = this.props; if (profileExists === false) { history.push('/homepage'); } return ( <div className={classes.root}> {component} </div> ); }Está bien, pero no del todo en la forma en que lo estás usando. Debe emitir la redirección como una navegación imperativa en un gancho useEffect
useEffect(() => { if (!profileExists) { history.replace('/homepage'); } }, [profileExists]); ... return ( <div className={classes.root}> {component} </div> ); o emita la redirección como una navegación declarativa mediante la representación del componente Redirect .
if (!profileExists) { return <Redirect to='/homepage' />; } return ( <div className={classes.root}> {component} </div> );