我的React应用在Safari浏览器中打开时出现问题,特别是私有路由。错误信息如下:
SyntaxError:意外的记号“const”
我有一个普通的路由函数:
function App() {
return (
<Router history={history}>
<Switch>
<Route path="/" exact component={Home} />
<Route path="/login" component={Login} />
<PrivateRoute path="/dash" component={Dashboard} />
<PrivateRoute path="/filters" component={Filters} />
<PrivateRoute path="/profile" component={Profile} />
<PrivateRoute path="/map" component={Map} />
<PrivateRoute path="/bookmarks" component={Bookmarks} />
<PrivateRoute path="/client/:planID/:isLarge" component={Client} />
<PrivateRoute
path="/analyses/:planID/:isLarge"
component={Analyses}
/>
</Switch>
</Router>
);
}
问题出在这个PrivateRoute上,因为当我移除导入和标签后它就没有显示错误了。这是我的私有路由文件:
import React from "react";
import { Route, Redirect } from "react-router-dom";
const PrivateRoute = ({ component: Component, ...rest }) => {
return (
<Route
{...rest}
render={props =>
sessionStorage.getItem("Token") ? (
<Component {...props} />
) : (
<Redirect to="/login" />
)
}
/>
);
};
export default PrivateRoute;
我怀疑在Safari中,返回的某些内容出现了问题,但我不知道具体是什么。同时,在Chrome、Mozilla、IE和Edge上都可以正常运行,只有Safari存在问题。
更新:这是Safari中的问题截图:
![enter image description here](https://istack.dev59.com/Ajutv.webp)
const token = sessionStorage.getItem("Token")
。然后在 return 语句中,使用该“token”进行登录检查。 - MwamiTovi