因此,我在网站的根目录中有这个React组件,即登录名,该页面称为A。如果登录成功,它将登录状态设置为true,然后切换到另一个页面,然后在这些页面的树上向下移动(因此,假设我有A,那么B是A的孩子,C是B的孩子)。假设在CI处,对后端进行一次休息呼叫并返回401(无论出于何种原因,不允许他们访问他们的令牌或令牌已过期),那么我知道该用户不应登录,因此应自动将登录状态设置为A为假。
我想知道是否有办法与全球州经理合作?我猜想与Redux类似,但是Redux要求您也将存储传递到组件树下,我觉得这有点麻烦并且组织起来比较困难。如果我可以导入一个全局状态存储,那就太好了。
答案 0 :(得分:1)
在这种情况下,您应该使用商店来维护应用程序中的身份验证状态。您可以将其简单地注入到任何组件中并更新值,并让其他需要检查的组件引用它。
如果您还不了解存储,那么将状态存储在父组件中的方法
this.state = {
authorised: false,
}
然后添加一个函数来更新它:
setAuthorisation(value){
this.setState({authorised: value})
}
现在您要做的就是将这些都传递给子组件,并且可以随时对其进行更新和引用
<Child authCallback={this.setAuthorisation} isAuthorised={this.state.authorised} />
您应该真正地自己研究它,因为它是react的基本知识之一:)