5

コンポーネントに変更を加えると、webpack が再コンパイルされ、モジュールがホット スワップされます。ただし、ホット モジュール スワップが行われた回数と同じn回数のコードが実行されます。nたとえば、変更を加えたところ、関数が 2 回実行されています。別の変更を加えると、関数が 3 回実行されます。ストアの dispatchToken にを配置するconsole.log(Date.now())と、それが実行時間であることがわかりますn

ストア: http://pastebin.com/PVnyf572

webpack.config.js: http://pastebin.com/MsziqH9v

そして私は webpack-dev-server を実行しますwebpack-dev-server app/client.js --inline --hot --colors

複雑な変更を行うと、次のようなエラー メッセージが表示されることがよくあります (ただし、Store の 60 行目を 6 ではなく 10 に変更すると、これは発生しません)。

React Hot Loader が正しく構成されていないようです。NPM を使用している場合は、依存関係によって重複した React ディストリビューションが node_modules にドラッグされないようにし、require("react") がアプリをレンダリングする React インスタンスに対応するようにしてください。React のコンパイル済みバージョンを使用している場合は、https://github.com/gaearon/react-hot-loader/tree/master/docs#usage-with-external-reactで統合手順を参照してください。

4

2 に答える 2

3

あなたの webpack 設定は適切ではないと思います。このボイラープレートを使用してからコードを実行すると、問題が解決されると思います

https://github.com/tapos007/ReactJS-MobX-Webpack-Boilerplate

于 2016-07-19T08:32:54.320 に答える
1

副作用のあるものをホットリロードしているようです。

Webpack のドキュメントには、ホット リロードの処理方法を示すいくつかの例が記載されています。

あなたのペーストビンコードに基づいて、これは副作用だと思います:

    this.dispatchToken = Dispatcher.register(this.onAction.bind(this))

モジュールが置き換えられるときに「登録解除」するにmodule.hotは、ファイルに検出コードを追加する必要があると思います。PlayerStore

于 2016-07-19T16:37:36.463 に答える