有没有办法在MobX中轻推一个可观察的值?

时间:2016-10-14 01:50:46

标签: reactjs mobx mobx-react

所以,我在React应用程序中有一个包含Auth信息的商店。 auth派生自JWT令牌。商店有一个名为@observable的{​​{1}}值,用于检查auth商店是否有令牌,如果该令牌尚未过期,则类似于以下内容:

loggedIn

MobX依赖于知道何时在应用程序周围传播状态更改的操作,但class AuthStore { @observable token = cookies('api_token'); @computed get loggedIn() { if (!this.token) { return false; } return jwt_expires_in(this.token) > 60; } } 的结果不是因为用户交互而是因为时间的推移而改变。

所以,我想知道的是我如何在没有任何用户交互的情况下将此值传递给propogate,如何在给定的时间间隔内“轻推”它,以便应用程序可以正确响应过期的身份验证。

1 个答案:

答案 0 :(得分:3)

您可以简单地执行以下操作吗?

class AuthStore { constructor() { setTimeout(() => this.token = null, calc-time-to-expire + 60*1000) } }

否则,将过期时间存储在单独的值中,并以特定间隔更新。 例如@observable expires_in = 0setInterval(() => this.expiresIn = token ? 0 : jwt_expires(token), 1000)