我目前正在尝试使受保护的路由功能做出反应。我希望这result将返回一个布尔值而不是一个承诺而不更改ProtectedRoute为async:
import React from "react";
import { Redirect, Route } from "react-router-dom";
import { CheckToken } from "./RequestAction"
function ProtectedRoute({ component: Component, ...restOfProps }) {
const result = (async () => {
const res = await CheckToken()
return res;
})()
console.log(result); //log-> Promise {<pending>}[[Prototype]]: Promise[[PromiseState]]: "fulfilled"[[PromiseResult]]: false
return (
<Route
{...restOfProps}
render={(props) =>
result ? <Component {...props} /> : <Redirect to="/login/" />
}
/>
);
}
export default ProtectedRoute;
Run Code Online (Sandbox Code Playgroud)
这是CheckToken函数:
import axios …Run Code Online (Sandbox Code Playgroud)