react 路由权限

TypeScript 复制代码
import {  Spin } from "antd";
import { Suspense } from "react";
import { Navigate } from "react-router-dom";
import KeepAlive from 'react-activation'
function AuthRoute(props: any) {
    const spinStyle = {
        width: '100%',
        height: '100%',
        display: 'flex',
        alignItems: 'center',
        justifyContent: 'center'
    }
    const token = localStorage.getItem("token");

    let template = <Navigate to='/' replace></Navigate>;

    if (token || !props.auth) {
        if (props.id) {
            template = <KeepAlive autoFreeze={false} when={true} key={props.id} id={props.id}>
                <Suspense fallback={<div style={spinStyle}><Spin /></div>}>{props.children}</Suspense>
            </KeepAlive>
        } else {
            template = <Suspense fallback={<div style={spinStyle}><Spin /></div>} >{props.children}</Suspense>
        }

    }
    return template
}
export default AuthRoute

使用方式

相关推荐
社恐的下水道蟑螂5 分钟前
LangChain 进阶实战:从玩具 Demo 到生产级 AI 应用(JS/TS 全栈版)
前端·langchain·openai
Fairy要carry7 分钟前
项目01-手搓Agent之loop
前端·javascript·python
亲亲小宝宝鸭12 分钟前
Ctrl ACV工程师的提效之路:删掉项目中的冗余
前端
kyriewen15 分钟前
DOM树与节点操作:用JS给网页“动手术”
前端·javascript·面试
米饭同学i19 分钟前
基于腾讯云COS的小程序素材上传功能实现
前端·javascript·react.js
cxxcode19 分钟前
前端性能指标接入 Prometheus 技术方案
前端
辣椒炒代码20 分钟前
🚀 AI Agent 入门实战:基于 LangChain + MCP 构建智能导游助手
前端
ruanCat24 分钟前
前端工程化工具链从零配置:simple-git-hooks + lint-staged + commitlint
前端·git·代码规范
光影少年26 分钟前
如何开发一个CLI工具?
javascript·测试工具·前端框架·node.js
哈__36 分钟前
ReactNative项目OpenHarmony三方库集成实战:react-native-fingerprint-scanner
javascript·react native·react.js