У меня есть профиль functional component
, я хочу, чтобы пользователи получали к нему доступ, только если они аутентифицированы, в противном случае они должны быть перенаправлены.
import React from 'react';
import {useAuth0} from '@auth0/auth0-react';
export const Profile = ({history}) => {
const {user, isAuthenticated} = useAuth0();
if (!isAuthenticated) history.push('/');
const {email, picture} = user;
return (
<div>
<h4>Profile</h4>
<p>{email}</p>
<p>{picture}</p>
</div>
);
};
Здесь я получаю сообщение об ошибке, если пытаюсь получить доступ напрямую в / profile.
`TypeError: Cannot destructure property 'email' of 'user' as it is` undefined.
Я хотел бы сделать следующее:
- отобразить компонент
Home
, если пользователь не аутентифицирован, и передать логическое значение props . - перенаправить приложение на
'/'
Я пытаюсь объединить history.push('/')
и вернуть <Home message={true}/>
, но это не работает, поскольку реквизиты не передаются.
Есть ли способ совместить и то, и другое? Или мне не хватает дополнительных шагов?