javascript - Mobx 对计算属性调用操作

标签 javascript reactjs mobx mobx-react

这是代码:

@computed 
   get user() {
        if(!this.hasValidated)
            this.reloadUserData();
        return this.userData;
    }
@action
  reloadUserData() {
    return new Promise(function(ok, err) {
        if(!window.localStorage['atoken'])
            err({id:24, detail:'User havn\'t logged in.'});
        if(!window.localStorage['aprofile'])
            apicall.get('user/detail').then((data)=>{
                this.setProfile(data.data.content);
                ok(true);
            }).catch((derr)=>{
                err({id:20, detail:derr});
            });
        else{
            this.userData=JSON.parse(window.localStorage['aprofile']);
        }
    }.bind(this));
}

所以,主要目标是,当配置文件数据尚未验证时,我们将从服务器重新获取它,然后,在等待数据更改时,我们将从本地存储中为它们提供缓存的值。

Anddd ....我的问题是,为什么它会给我一个“计算值无法调用操作函数”的信息?

谢谢! :D

最佳答案

计算旨在(概念上)纯粹。并且 Actions 的目的是(概念上)不纯粹。因此,尽管从技术上讲它可能是一个很好的组合,但从概念上讲它们却不是。

但不用担心,只需检查 mobx-utilscompulated-async-mobx` 包即可。它们可能包含您正在寻找的现成可用的抽象。

关于javascript - Mobx 对计算属性调用操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41335128/

相关文章:

javascript - 如何确定旧版浏览器支持哪些技术和框架?

javascript - 如何在 d3 图中的边上添加标签

javascript - 异步操作未运行 Async React Redux Thunk

javascript - 我如何检查 Angular 中的 Mobx 商店是否为空?

javascript - 为什么这个变量的值未定义

javascript - 在 Angular 中使用 JavaScript 添加带有插值的标签

reactjs - 我如何在docker容器中从我的React构建中提供静态文件

javascript - 修复未重新渲染的子组件的方法(由于作为 Prop 而不是状态传递的数据发生变化)?

mobx - 确保 MobX 状态树模型中的接口(interface)合规性

javascript - React + MobX,用户认证,渲染错误