reactjs - 有没有办法在 MobX 中插入可观察值?

标签 reactjs mobx mobx-react

所以,我有一个商店,其中包含 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 = 0setInterval(() => this.expiresIn = token ? 0 : jwt_expires(token), 1000)

关于reactjs - 有没有办法在 MobX 中插入可观察值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40033703/

相关文章:

javascript - React-router v4 更新 url 但不渲染组件

mobx - 将数据数组设置为 mobx 数组显示代理对象

javascript - 为什么我们不能在 mobx-react 中使用 React.useMemo 来保留对状态对象的引用?

javascript - Mobx 返回空对象

javascript - 如何在MapboxGL Js中找到鼠标悬停下像素的rgb颜色?

google-maps - 如何在react-google-maps中调用函数getCenter()和其他函数

javascript - 无法在组件中使用 App.css 中的类

reactjs - 当可观察到的更改时,React Mobx componentDidUpdate 不会更新

javascript - 在 React Native 应用程序中获取请求后,MobX 存储未更新

javascript - 类型 'profileStore' 中缺少属性 '{}',但类型 'Readonly<AppProps>' 中需要属性 0x104567910 .ts(2741)