反应SPA。用于全局状态存储的API,用于处理登录状态?

时间:2018-09-24 02:09:56

标签: javascript reactjs rest

因此,我在网站的根目录中有这个React组件,即登录名,该页面称为A。如果登录成功,它将登录状态设置为true,然后切换到另一个页面,然后在这些页面的树上向下移动(因此,假设我有A,那么B是A的孩子,C是B的孩子)。假设在CI处,对后端进行一次休息呼叫并返回401(无论出于何种原因,不允许他们访问他们的令牌或令牌已过期),那么我知道该用户不应登录,因此应自动将登录状态设置为A为假。
我想知道是否有办法与全球州经理合作?我猜想与Redux类似,但是Redux要求您也将存储传递到组件树下,我觉得这有点麻烦并且组织起来比较困难。如果我可以导入一个全局状态存储,那就太好了。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您应该使用商店来维护应用程序中的身份验证状态。您可以将其简单地注入到任何组件中并更新值,并让其他需要检查的组件引用它。

如果您还不了解存储,那么将状态存储在父组件中的方法

this.state = {
    authorised: false,
}

然后添加一个函数来更新它:

setAuthorisation(value){
    this.setState({authorised: value})
}

现在您要做的就是将这些都传递给子组件,并且可以随时对其进行更新和引用

<Child authCallback={this.setAuthorisation} isAuthorised={this.state.authorised} />

您应该真正地自己研究它,因为它是react的基本知识之一:)