首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果init值在react中未定义,则Mobx @observable不工作-本机0.59

如果init值在react中未定义,则Mobx @observable不工作-本机0.59
EN

Stack Overflow用户
提问于 2019-05-24 01:45:56
回答 2查看 1.4K关注 0票数 3

我正在迁移react原生的0.51.1到0.59.8。我正面临着Mobx的问题。

如果@可观察的装饰成员已经像这样分配了init值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@observable cnt = 0;

那就成功了。

但如果没有定义的话,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@observable cnt;

那就没用了。

我有许多未定义的可观察到的商店,它们在0.51.0中工作。

我想让它以未定义的方式工作。

在迁移过程中,Babel的装饰选项发生了变化。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 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}],
  ],
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//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++;
  }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//This works
import { observable } from 'mobx';

export class Count {
  @observable cnt = 0;

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

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-30 23:31:53

我明确地解决了这个声明undefined的问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@observable cnt = undefined;
票数 3
EN

Stack Overflow用户

发布于 2020-03-02 23:11:28

我用Babel的打字本写了这个问题。罪魁祸首是这些babel插件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    ['@babel/plugin-transform-flow-strip-types'],
    ['@babel/plugin-proposal-decorators', { legacy: true }],

看来,未初始化的类属性上的装饰器不会被这些插件调用。它们有可能干扰了类型脚本对类属性的处理。

我的babel.config.js现在看起来是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
    plugins: [['@babel/plugin-proposal-decorators', { legacy: true }]],
    presets: ['module:metro-react-native-babel-preset']
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56290003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文