28

react-routerなどの React ライブラリを使用すると、次のエラーが発生することがあります。

キャッチされていない TypeError: 未定義のプロパティ 'firstChild' を読み取れませ
ん /~/react-router/~/react/lib/ReactMount.js?:606

どうすれば修正できますか?

4

6 に答える 6

65

このエラーは、通常、React の 2 つのバージョンが一緒にロードされたことが原因で発生します。

たとえばnpm install、別の React バージョンを必要とするパッケージをdependenciesではなく に配置する場合peerDependencies、別の React を にインストールする可能性がありnode_modules/<some library using React>/node_modules/reactます。

2 つの異なる React が一緒にうまく動作することはありません (少なくともまだ)。

修正するには、削除するだけnode_modules/<some library using React>/node_modules/reactです。の代わりに
React を入れているライブラリを見つけた場合は、問題を報告してください。dependenciespeerDependencies

于 2014-11-26T15:38:42.770 に答える
11

npm link反応に応じて2つのモジュールを編集したことで誰かがこの問題を抱えている場合、私は解決策を見つけました...

React に依存する Parent と、React に依存する Child があるとします。あなたがするとき:

cd ../child npm link cd ../parent npm link child

親と子がそれぞれ独自の React インスタンスをロードするため、この問題が発生します。

これを修正する方法は次のとおりです。

cd parent cd node_modules/react npm link cd ../../../child npm link react

これにより、リンクされている場合でも、親プロジェクトが反応する依存関係を確実に提供します。これは、リンクされていない場合に npm が依存関係を解決する方法です。

于 2015-04-23T08:34:35.873 に答える
3

私には、peerDependencies が注目を集めていないように思えます。https://github.com/npm/npm/issues/5080#issuecomment-40545599を参照してください

私はreact-date-picker (および他の反応モジュール) を維持しています。これまでに行ったことは、^0.12.0 などのキャレットを使用して React 依存関係を指定することです。

また、ビルドを実行するとすべてのファイルが連結され、npm エコシステムの外で使用する externals: { 'react': 'React'} ために、グローバル var を探すwebpack を使用しReactます。

于 2015-02-18T10:18:54.897 に答える
0

私にとっての問題は、 from react-bootstrap<Link>内で from react-routerを使用していたことです。<NavItem>

于 2015-09-03T06:16:27.123 に答える