Mobx useStrict is not a function

#1

我是新手刚看了几天mobx就上手做项目,目前我遇到的问题:

import { observable, action, computed, useStrict } from 'mobx'

useStrict(true)

class DeviceStore {
  @observable deviceList = []
  @observable copyDeviceList = []
  @observable searchText = ''
  @observable pagination = {}
  @observable delSelectedRowKeys = []

  @action async getDeviceList() {
    let resp = await reqwest({
      url: '/mock-api/device-list.json',
      method: 'get',
      data: {
        identityId: '5105551111222233330151'
      }
    });
    const pagination = {}
    this.pagination.total = resp.data.length || 0
    this.deviceList = resp.data
    this.copyDeviceList = resp.data
  }

}

const deviceStore = new DeviceStore()

export default deviceStore

理论上来说 我是希望有限制,只能通过action来改变state。 但是浏览器报错:

我查看了mobx 库(版本4.1.1) lib 下的 mobx.d.ts 文件,里面已经没有useStrict 函数了。我又下载了比较低一点的版本的mobx (版本 3.6.2) lib 中的 mobx.d.ts 文件里面是有useStrict 函数的,当然这个版本的mobx 不会报错的。

我想问一问,现在useStrict 已经不用了么? 那么高版本的mobx 如何限制必须通过action 才能修改state?

#2

自己更新一波,mobx@4.x 之后的严格模式改成这么用了~ 。 这两天找的到的项目,要么是用的mobx@3.x 要么是没有用严格模式,一开始我也没查到迁移说明,贴个地址,希望下次有人遇到的时候不用浪费时间找。

Migrating from mobx 3 to mobx 4