[解決済み] React.createElement: type is invalid -- expected a string.
2022-01-28 18:15:20
質問
react-router (v4.0.0) と react-hot-loader (3.0.0-beta.6) をうまく動作させようとしていますが、ブラウザのコンソールで以下のエラーが表示されます。
Warning: React.createElement: type is invalid -- expected a string
(for built-in components) or a class/function (for composite
components) but got: undefined. You likely forgot to export your
component from the file it's defined in.
index.js。
import React from 'react';
import ReactDom from 'react-dom';
import routes from './routes.js';
require('jquery');
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/js/bootstrap.min.js';
import './css/main.css';
const renderApp = (appRoutes) => {
ReactDom.render(appRoutes, document.getElementById('root'));
};
renderApp( routes() );
routes.js。
import React from 'react';
import { AppContainer } from 'react-hot-loader';
import { Router, Route, browserHistory, IndexRoute } from 'react-router';
import store from './store/store.js';
import { Provider } from 'react-redux';
import App from './containers/App.jsx';
import Products from './containers/shop/Products.jsx';
import Basket from './containers/shop/Basket.jsx';
const routes = () => (
<AppContainer>
<Provider store={store}>
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRoute component={Products} />
<Route path="/basket" component={Basket} />
</Route>
</Router>
</Provider>
</AppContainer>
);
export default routes;
どのように解決するのですか?
ほとんどの場合、不正なエクスポート/インポートが原因です。
よくあるエラーです。
// File: LeComponent.js
export class LeComponent extends React.Component { ... }
// File: App.js
import LeComponent from './LeComponent';
可能なオプション
// File: LeComponent.js
export default class LeComponent extends React.Component { ... }
// File: App.js
import LeComponent from './LeComponent';
いくつかの間違いの可能性がありますが、そのエラーは60%の確率でインポート/エクスポートの不一致が原因です、毎回。
編集
通常、あなたは すべき 障害が発生したおおよその場所を示すスタックトレースを取得します。これは通常、最初の質問にあるメッセージの直後です。
もし表示されない場合は、その原因を調査する価値があるかもしれません(ビルドの設定に抜けがあるのかもしれません)。いずれにせよ、表示されない場合、唯一の対処法は、以下のように絞り込むことです。 どこ エクスポート/インポートに失敗しています。
悲しいかな、スタックトレースなしでこれを行う唯一の方法は、エラーが出なくなるまで手動で各モジュール/サブモジュールを削除し、スタックを遡って作業することです。
編集2
コメントにより、確かにインポートの問題であり、特に存在しないモジュールをインポートしたことが原因であることが判明しました。
関連
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み] 非必須項目に対するYupバリデーション
-
[解決済み] reactstrapのドロップダウンで選択されたアイテムを設定する方法は?
-
[解決済み] Static HTML elements with event handlers require a role." を修正するにはどうすればよいですか?
-
[解決済み] Error: yarn start - エラー コマンド "start" が見つかりません。
-
[解決済み] componentWillReceivePropsライフサイクルメソッドはいつ使用するのですか?
-
[解決済み] create-react-appビルドスクリプトを実行する際に、ビルド.env変数を設定するには?
-
[解決済み] Reactプロジェクトに.envファイルを追加する
-
[解決済み] React」は定義される前に使用されていた
-
[解決済み] クエリ文字列からパラメータ値を取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React 17で動作するEnzymeアダプターはどれですか?
-
[解決済み] Apolloクライアントでログアウトした後、ストアをリセットする
-
[解決済み] バベルエラーです。JSX値は、式または引用されたJSXテキストのいずれかである必要があります。
-
[解決済み] configuration.module に未知のプロパティ 'loaders' があります。
-
[解決済み] SVGサークル内の画像にボーダーを追加する方法
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] 'Proptypes'が定義されていない
-
[解決済み] 矢印本体を囲む予期せぬブロックステートメント
-
[解決済み] Error: yarn start - エラー コマンド "start" が見つかりません。
-
[解決済み] ES6インポートで中括弧を使用するのはどのような場合ですか?