10

MobXのドキュメントには、デコレータが機能するためには、「変換プラグイン transform-decorators-legacy を使用し、それがプラグイン リストの最初にあることを確認する」必要があると書かれています。MobX ボイラープレート プロジェクトは、次の.babelrcようなものが必要であることを示唆しています。

{
  "presets": [
    "react",
    "es2015",
    "stage-1"
  ],
  "plugins": ["transform-decorators-legacy", "react-hot-loader/babel"]
}

create-react-app で生成されたプロジェクトでそれを行うにはどうすればよいですか? @デコレータのエラーを使用しようとする試み。.babelrcプロジェクトが「排出」された後でもありません。

4

5 に答える 5

11

受け入れられた回答の時点では利用できなかった代替手段があります。custom-react-scriptsです。これにより、CRA アプリでデコレータ、SASS、およびその他の機能を有効にできます。そして、それはイジェクトせずにそうします。

その背後にあるアイデアを説明する素晴らしい記事があります。

于 2016-10-26T21:34:09.173 に答える
9

ない限り、デコレータ構文を使用することはできませんeject@ただし、MobXは単なるシンタックス シュガーであるため、MobX を使用しなくても使用できます。

ダン・アブラモフはその理由を明確に述べています

私たちの立場は単純です。十分に安定している変換 (async/await など) か、Facebook で頻繁に使用されている変換 (クラス プロパティなど) を追加します。それだけで、自信を持って提案できるようになります。なぜなら、標準で何かが変更された場合、コードモッドを作成してリリースし、それらから移行するからです。

現在デコレーターを使用していないため、標準に互換性がなくなった場合に移行パスを提供することはありません。さらに、デコレータは Babel によって公式にサポートされていません (-legacy には理由があります)。そして、それらがわずかに正しく設定されていない場合、人々は React を非難します。

あなたも調べたいかもしれませんcreate-react-app-mobx

関連する議論:

于 2016-09-01T03:50:56.590 に答える