我要执行以下操作:
我考虑过只从localStorage获取令牌,然后对其进行解码并从中发挥作用。但是,如果我更改数据库中的角色(例如,从管理员更改为用户),该怎么办?客户端上的已解码令牌将包含“管理员”角色。这样该用户将可以看到管理页面。
答案 0 :(得分:0)
您可以在商店中使用名为isFetchingUserDetails
的变量,并在对服务器进行异步调用以获取详细信息时将其设置为true。
直到isFetchingUserDetails
设置为true为止,您都可以在render()中使用if语句返回微调器或其他向用户显示页面正在加载的组件。
从服务器获得响应后,isFetchingUserDetails
将被设置为false,其余的render()将被执行。
无商店
import React, { Component } from "react";
import ReactDOM from "react-dom";
class App extends Component {
constructor() {
super();
this.state = { isFetchingUserDetails: true };
}
componentDidMount() {
fetch(`https://api.makethecall.com/users/1`)
.then(res => res.json())
.then(() => this.setState({ isFetchingUserDetails: false }));
}
render() {
if (this.state.isFetchingUserDetails) {
return <Spinner />
}
return (
<Home />
);
}
}