mobx数据更新,组件未刷新问题(含处理方案)

在这里我不得不吐槽一下我遇到的这个问题虽然解决了
我上一个测试项目使用mobx完全没问题,结果我正式项目一上mobx,出毛病了,代码流程都是一样,但他操作成功,数据更新,就是不刷新组件我真是服气了,网上找了好久都没找到有用的文章,我真的自闭了,但是mobx也不能放弃,我硬着头皮看啊,搜索文章,看api,完全摸不着头脑,最后我想到一个点,我去看了一下mobx版本,发现问题
这是不能正常使用的情况,版本6.0了我第一次使用这玩意儿哪知道啊,

"mobx": "^6.0.1",
"mobx-react": "^7.0.0",

直接切换到我测试项目的版本吧

"mobx": "^5.15.7",
"mobx-react": "^6.3.0",

我丢,报错了大概错误信息,说我版本太低至少要6.0才能使用mobx-react-lite
mobx-react-lite@3 requires mobx at least version 6 to be available

直接把mobx-react-lite给安排上,成功了,组件可以正常刷新了
"mobx-react-lite": "^2.0.7",

上面是第一种解决办法,切换回5.15.7版本可以解决,但是还得知道新版本特性才行
根据评论区各位老哥的力量,了解了新版本的解决方案,"makeObservable"加上这段代码就可以监听更新了,不需要切换老版本

import {observable,action, makeObservable} from "mobx";

class learnStore {
    constructor() {
        makeObservable(this)
    }
    @observable learnData = getVal("learnData", []); //学生详情是否打开

    @action setLearnData(val) {
        this.learnData = val
        setVal("learnData", val)
    }
}

export default new learnStore();

最后还有个疑问,mobx5+不支持ie这就很难受

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值