2016-12-14 15 views
7

ので、私は私がmobxをインストールし、mobx反応しhttps://facebook.github.io/react/blog/2016/07/22/create-apps-with-no-configuration.htmlmobx +が反応予期しないトークン

から設定なしで反応するが、それでも@のSYMB前に予期しないトークンのエラーを示しているとアプリを作成しました。

私は何か他のものを追加する必要がある、または私の現在の設定が間違っているのですか?:(

{ 
    "presets": ["es2015", "stage-0", "react"], 
    "plugins": [ 
     "transform-decorators-legacy", 
     "transform-class-properties" 
    ] 
} 

とコード

.babelrc

package.json

"devDependencies": { 
"react-scripts": "0.8.4", 
"babel-core": "^6.7.6", 
"babel-loader": "^6.2.4", 
"babel-preset-es2015": "^6.6.0", 
"babel-preset-react": "^6.5.0", 
"babel-preset-stage-0": "^6.5.0" 
}, 
"dependencies": { 
"autobind-decorator": "^1.3.4", 
"classnames": "^2.2.5", 
"lodash": "^4.15.0", 
"mobx": "^2.5.1", 
"mobx-react": "^3.5.5", 
"react": "^15.3.1", 
"react-dom": "^15.3.1", 
"validator": "^5.6.0" 
}, 

import React, { Component } from 'react'; 
import { action, observable } from 'mobx' 
import {observer} from 'mobx-react'; 


class App { 
    @observer cake = []; 
} 

export default new App(); 
+0

に次のバベルの設定を追加し '@のobserver'は、あなたのリアクト部品に使用デコレータです。観測可能なデータが必要な場合は、デコレータ '@ observable'を使用してください。 – Tholle

+0

私が使っているものは何でも、@ symbを使うとすぐそこで止まります。だから私はmobxが適切にインストールされていないと思う。 –

+1

ああ、私は誤解されている。 create-react-appはデコレータ( '@')をまったくサポートしていないからです。私はMobXがここでの犯人だとは思わない。代わりに[** mobx-react-boilerplate **](https://github.com/mobxjs/mobx-react-boilerplate)を試すことができます。 – Tholle

答えて

8

create-react-appはデコレータ(@)をサポートしていません。 eject自分で追加するcreate-react-appか、自分の環境をゼロから設定するか、開始点としてmobx-react-boilerplateのようなものを使用できます。

mobx extensionで私は個人的にreact-app-rewiredを使用しました。

+0

私はnodejs 6.0と一緒に使用するとデコレータで完璧に動作するように、プロジェクトのドキュメントはhttps://wcandillon.github.io/react-nativeから入手できます。 -do-documentation/docs/ – wcandillon

4

デコレータ(hereおよびhere)を使用しないで提供されている構文を使用できます。ここで

は、あなたが提供するアプリケーションクラスのコードを使用した例です:

import React, { Component } from 'react'; 
import { action, extendObservable } from 'mobx' 
import {observer} from 'mobx-react'; 


class App { 
    constructor() { 
    extendObservable(this, { 
     cake = [], 
    }); 
    } 
} 

export default new App(); 
1

あなたはnpm run ejectを実行した後、パッケージが欠落している(作成反応するアプリとしてデコレータをサポートしていません)。 npm install --save-dev babel-plugin-transform-decorators-legacy babel-plugin-transform-class-properties

実行して、その後、あなたのpackage.json

"babel": { 
    "plugins": [ 
    "transform-decorators-legacy" 
    ], 
    "presets": [ 
    "react-app" 
    ] 
}, 
+0

Babelプラグイン配列に 'transform-class-properties'を追加することになっていると思います。 –

関連する問題