[解決済み] React + ES6 + webpackを使用してコンポーネントをインポートおよびエクスポートする方法?
2022-05-07 02:08:33
質問
で遊んでいます。
React
と
ES6
使って
babel
と
webpack
. 複数のコンポーネントを別々のファイルにビルドして、1つのファイルにインポートして、バンドルしたいのですが
webpack
例えば、こんなコンポーネントがいくつかあるとします。
my-navbar.jsx
import React from 'react';
import Navbar from 'react-bootstrap/lib/Navbar';
export class MyNavbar extends React.Component {
render(){
return (
<Navbar className="navbar-dark" fluid>
...
</Navbar>
);
}
}
メインページ.jsx
import React from 'react';
import ReactDOM from 'react-dom';
import MyNavbar from './comp/my-navbar.jsx';
export class MyPage extends React.Component{
render(){
return(
<MyNavbar />
...
);
}
}
ReactDOM.render(
<MyPage />,
document.getElementById('container')
);
webpackを使い、そのチュートリアルに沿って、次のようにしました。
main.js
:
import MyPage from './main-page.jsx';
プロジェクトをビルドして実行すると、ブラウザのコンソールに次のようなエラーが表示されます。
Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. Check the render method of `MyPage`.
何が間違っているのでしょうか?どうすれば適切にコンポーネントをインポートおよびエクスポートできますか?
解決方法は?
試す デフォルト を使用することで、コンポーネントのエクスポートを行うことができます。
import React from 'react';
import Navbar from 'react-bootstrap/lib/Navbar';
export default class MyNavbar extends React.Component {
render(){
return (
<Navbar className="navbar-dark" fluid>
...
</Navbar>
);
}
}
default を使うことで、特定のメンバー名が提供されない場合、そのモジュールのメンバーがインポートされることを表現しています。また、次のようにして MyNavbar という特定のメンバーをインポートしたいことを表現することもできます: import {MyNavbar} from './comp/my-navbar.jsx'; この場合、デフォルトは必要ありません。
関連
-
[解決済み] TypeError: reactjs の未定義のプロパティ 'status' を読み取ることができません。
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] Reactルータを使ったプログラムによるナビゲーション
-
[解決済み] ES6インポートで中括弧を使用するのはどのような場合ですか?
-
[解決済み] Reactコンポーネントに条件付きで属性を追加するにはどうすればよいですか?
-
[解決済み] Reactでes6クラスを使うときの「super()」と「super(props)」の違いとは?
-
[解決済み] Node.jsとES6におけるmodule.exportsとexport defaultの比較
-
[解決済み】Node.jsのrequireとES6のimport/exportを使い分ける。
-
[解決済み】インデックスファイルでのES6エクスポート/インポート機能
-
[解決済み】ES6クラスベースのReactコンポーネントと機能的なES6 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ReactJS: マテリアルuiのブレークポイントについて
-
[解決済み] material-ui-pickers KeyboardDatePicker をモーメントで使用するには?
-
[解決済み] Angular 2の*ngForのReactでの同等品
-
[解決済み] react router dom v4でwebpack dev serverを構成する方法は?
-
[解決済み] react.jsで複数のモジュールをエクスポートする
-
[解決済み] ReactJS で inst.render が関数でないエラーが発生する
-
[解決済み] Error: yarn start - エラー コマンド "start" が見つかりません。
-
[解決済み] Cross-envでyarnの実行時にenv変数が変更されない。
-
[解決済み] AxiosにCORSの問題が発生
-
[解決済み] reactのuseStateフックでコールバックを使う方法 [重複]。