0

私は webpack よりも browserify を好みますが、browserify 環境には修正できない問題があります。私はreact、redux、react-routeを使用しており、react-hot-loaderがwebpack環境に提供するもののように、ホットモジュールをリロードしたいと思っています。これを達成するために livereactload を使用しています (browserify-hmr も試しました) 問題は、redux では機能しないことです。その redux の例 ( https://github.com/milankinen/livereactload/blob/master/examples/02-redux ) は、新しいクローンでは機能しません。それはまったく可能ですか?この例を機能させるために必要な変更を誰かに教えてもらえますか?

PSはこの問題を見てください https://github.com/milankinen/livereactload/issues/64

4

2 に答える 2

2

私はそれを使用していますが、watchify プラグイン: plugin(require('livereactload')) として使用しており、問題なく動作します。

LiveReactload :: Bundle changed と page is updated がありますが、次の警告もあります: browser.js:51 Warning: [react-router] You cannot change ; それは無視されます。

それでも「ローカル」リロードは行いますが、「真の」ホット リロードではありません。多くのものがまだ再レンダリングされており、望みどおりの結果が得られていないからです。

構成ストアに追加する必要があるのは、次のものだけです。

export default function configureStore(initialState) {
  const store = createStoreWithMiddleware(rootReducer, initialState);

  // React hot reload
  if (module.onReload) {
    module.onReload(() => {
      const nextReducer = require('../reducers');
      store.replaceReducer(nextReducer.default || nextReducer);
      // return true to indicate that this module is accepted and
      // there is no need to reload its parent modules
      return true;
    });
  }

  return store;
}
于 2016-07-14T11:39:57.490 に答える
0

私の問題reduxは、私が使用していreact-proxy@1.xなかっbabel-plugin-react-transformたことと、コンポーネントがプロキシにラップされていなかったことです。新しいバージョンの livereactload を使用せずに使用しreact-proxyたりbabel-plugin-react-transform、これを見たりすると、エラーが発生します: https://github.com/milankinen/livereactload/issues/64#issuecomment-231992217

私の問題react-routeは、Route ディレクティブでアロー関数として定義されたコンポーネントを使用していたことです。どうやらlivereactloadそれをサポートしていません。アロー関数の代わりにクラスコンポーネントを使用することで解決しました。ここでの説明: https://github.com/milankinen/livereactload/issues/43#issuecomment-231990841

于 2016-07-14T14:05:39.950 に答える