mobx - 必须将前导装饰器附加到类声明

时间:2016-11-21 13:24:31

标签: reactjs mobx

我目前正在使用React开发Electron应用程序。我偶然发现了MobX并希望尝试一下,但我有问题让我的代码工作

我想使用MobX装饰器,但是当我尝试运行我的代码时,收到以下错误消息:

Leading decorators must be attached to a class declaration

我的应用程序是将数据存储在nedb的数据存储区中,我想用mobx观察它们。

例如,如果我有以下代码:

import { observable } from 'mobx';
import Datastore from 'nedb';

@observable projectsDb = new Datastore({
    filename: __dirname + './projects.json',
    autoload: true,
    timestampData: true,
});

export default projectsDb;

当我启动Electron App时,我使用以下命令:

"browserify -t [ babelify --presets [ react es2015 stage-1] --plugins [transform-decorators-legacy] ] app/app.jsx -o app/js/app.js && stylus app/css/styles.styl -o app/css/styles.css && electron app/main.js",

此外,所有devDepenendencies和Dependencies都会添加到我的package.json中。

我的“开始”命令中是否有任何错误或者此处可观察的概念存在任何误解?

提前致谢:)

1 个答案:

答案 0 :(得分:5)

装饰器(通常)不能应用于变量,只能应用于类和属性。但是,observable也可以作为funcion调用(所以没有@),然后你也可以对它进行对象调用。

P.S。请注意,MobX确实修改了外部库的内部,因此将整个数据库类传递给observable不会神奇地使整个数据库lib被动,它只会为数据库创建observable reference