mobx升级到6后组件不刷新

问题描述

项目进行package.json中的依赖包全量更新(可以参照npm更新项目中全部依赖),将mox:5.15.7,mobx-react:6.3.1更新到 mox:6.0.4,mobx-react:7.0.5 应用通过@observable修饰的属性变更后,视图并不刷新

解决方案

在不做改变的前提下,class中添加makeObservable,同时使用makeObservable包裹要监听的对象(我们项目中是对整个class对象设置成observable,因此在构造函数内使用了makeObsevable(this)

import {action, makeObservable, observable} from 'mobx'
export class BaseModel {

  constructor() {
    // 添加makeObservable
    makeObservable(this)
  }


  @observable
  dataInfo = {}

  @action
  initDataInfo(info: any) {
    this.dataInfo = info
  }

  @action
  setDataInfo(info: any) {
    this.dataInfo = Object.assign({}, this.dataInfo, info)
  }
}

问题寻求解决的过程

github中issue找到了关于autorun无法自动触发的问题,推理视图无法刷新的原因也是一致的(mobx中文网还没有更新mobx6版本的文档,部分调整暂时我们只能通过某些方式去看官网了,你懂的)
issue中的描述:mobx autorun isn't firingissue地址
mobx autorun isn't firing

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值