Mobx @observable не работает, если его значение инициализации не определено в реакции-нативном 0,59 - PullRequest
0 голосов
/ 24 мая 2019

Я мигрирую реагирующий нативный от 0,51,1 до 0,59,8. И я сталкиваюсь с проблемой Mobx.

Если оформленный элемент @observable назначил значение инициализации, подобное этому

@observable cnt = 0;

тогда это работает.

Но если оно не определено,

@observable cnt;

тогда это не работает.

У меня есть много неопределенных наблюдаемых магазинов, и они работали в 0.51.0.
Я хочу, чтобы это работало как неопределенное.

Варианты декорирования бабеля были изменены во время миграции.

// babel.config.js
module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  plugins: [
    ['@babel/plugin-transform-flow-strip-types'],
    ['@babel/plugin-proposal-decorators', { 'legacy': true}],
    ['@babel/plugin-proposal-class-properties', { 'loose': true}],
  ],
}
//This doesn't work but worked in react-native 0.51.0
import { observable } from 'mobx';

export class Count {
  @observable cnt;

  constructor(initValue = 0) {
    this.cnt = initValue;
  }

  add(){
    this.cnt++;
  }
}
//This works
import { observable } from 'mobx';

export class Count {
  @observable cnt = 0;

  constructor(initValue = 0) {
    this.cnt = initValue;
  }

  add(){
    this.cnt++;
  }
}

1 Ответ

0 голосов
/ 31 мая 2019

Я решил это, объявив undefined явно.

@observable cnt = undefined;
...