react-routerなどの React ライブラリを使用すると、次のエラーが発生することがあります。
キャッチされていない TypeError: 未定義のプロパティ 'firstChild' を読み取れませ
ん /~/react-router/~/react/lib/ReactMount.js?:606
どうすれば修正できますか?
react-routerなどの React ライブラリを使用すると、次のエラーが発生することがあります。
キャッチされていない TypeError: 未定義のプロパティ 'firstChild' を読み取れませ
ん /~/react-router/~/react/lib/ReactMount.js?:606
どうすれば修正できますか?
このエラーは、通常、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 を入れているライブラリを見つけた場合は、問題を報告してください。dependencies
peerDependencies
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 が依存関係を解決する方法です。
私には、peerDependencies が注目を集めていないように思えます。https://github.com/npm/npm/issues/5080#issuecomment-40545599を参照してください
私はreact-date-picker (および他の反応モジュール) を維持しています。これまでに行ったことは、^0.12.0 などのキャレットを使用して React 依存関係を指定することです。
また、ビルドを実行するとすべてのファイルが連結され、npm エコシステムの外で使用する
externals: { 'react': 'React'}
ために、グローバル var を探すwebpack を使用しReact
ます。
私にとっての問題は、 from react-bootstrap<Link>
内で from react-routerを使用していたことです。<NavItem>