所以,我有一个商店,其中包含 React 应用程序中的身份验证信息。身份验证源自 JWT token 。该存储有一个名为 loggedIn
的 @observable
值,用于检查身份验证存储是否具有 token 以及该 token 是否尚未过期,类似于以下内容:
class AuthStore {
@observable token = cookies('api_token');
@computed get loggedIn() {
if (!this.token) {
return false;
}
return jwt_expires_in(this.token) > 60;
}
}
MobX 依赖于操作来了解何时在应用程序中传播状态更改,但 loggedIn()
的结果变化并不是因为用户交互,而只是因为时间的流逝。
所以,我想知道如何在没有任何用户交互的情况下传播这个值,如何在给定的时间间隔内“插入”它,以便应用程序可以正确响应过期的身份验证。
最佳答案
您可以简单地执行以下操作吗?
类 AuthStore {
构造函数(){
setTimeout(() => this.token = null, 计算到期时间 + 60*1000)
}
}
否则,将过期时间存储在单独的值中,并以一定的时间间隔更新它。
例如@observable expires_in = 0
和 setInterval(() => this.expiresIn = token ? 0 : jwt_expires(token), 1000)
关于reactjs - 有没有办法在 MobX 中插入可观察值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40033703/