123456789101112131415161718192021 |
- import React, { useState, useEffect } from 'react';
- import { useLocation, Navigate } from "react-router-dom";
- import { useModel } from '@/store';
-
- export default (props) => {
- const { user, getCurrentUser } = useModel('user');
- const [userStatus, setUserStatus] = useState(user && user.id ? 1 : 0);
-
- useEffect(() => {
- if (!user || !user.id) {
- getCurrentUser().then(() => {
- setUserStatus(1);
- }).catch(() => {
- setUserStatus(-1);
- });
- }
- }, []);
-
- return userStatus === 0 ? null :
- userStatus === -1 ? <Navigate to="/login?back=true" /> : props.children;
- }
|