【问题标题】:Is there a way to nudge an observable value in MobX?有没有办法在 MobX 中微调一个可观察的值?
【发布时间】:2017-02-23 07:51:33
【问题描述】:

所以,我有一个商店,其中包含 React 应用程序中的 Auth 信息。身份验证来自 JWT 令牌。该商店有一个名为loggedIn@observable 值,用于检查身份验证商店是否有令牌以及该令牌是否尚未过期,类似于以下内容:

class AuthStore {
  @observable token = cookies('api_token');
  @computed get loggedIn() {
    if (!this.token) {
      return false;
    }
    return jwt_expires_in(this.token) > 60;
  }
}

MobX 依赖于动作来知道何时在应用程序中传播状态变化,但 loggedIn() 的结果变化不是因为用户交互,而只是时间的流逝。

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

【问题讨论】:

    标签: reactjs mobx mobx-react


    【解决方案1】:

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

    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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-14
      • 1970-01-01
      • 2020-12-16
      • 2015-12-16
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多