[解決済み] react.jsで複数のモジュールをエクスポートする
2022-02-17 08:29:18
質問
react.jsの初心者で、以下のことをしようとしている。 チュートリアル . 残念ながら、このページに書かれているコードはうまくいきませんでした。
ERROR in ./App.jsx
Module build failed: SyntaxError: Only one default export allowed per module.
どうすれば直るのか不思議です。 ありがとうございます。
=== App.jsx===
import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, Link, browserHistory, IndexRoute } from 'react-router'
class App extends React.Component {
render() {
return (
<div>
<ul>
<li><Link to = "/home">Home</Link></li>
<li><Link to = "/about">About</Link></li>
<li><Link to = "/contact">Contact</Link></li>
</ul>
{this.props.children}
</div>
)
}
}
export default App;
class Home extends React.Component {
render() {
return (
<div>
<h1>Home...</h1>
</div>
)
}
}
export default Home;
class About extends React.Component {
render() {
return (
<div>
<h1>About...</h1>
</div>
)
}
}
export default About;
class Contact extends React.Component {
render() {
return (
<div>
<h1>Contact...</h1>
</div>
)
}
}
export default Contact;
=== main.js ===
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
ReactDOM.render(<App/>, document.getElementById('app'));
アップデイト1
をすべてコメントアウトしました。
export default
を追加し、最後に以下を追加しました。
module.exports = {
App: App,
Home: Home,
About: About,
Contact: Contact
}
これでコンパイルエラーは出なくなりましたが、ウェブページは空白です。何が間違っているのかよくわかりません。
どうすればいいですか?
デフォルトのエクスポートは1つだけで、好きなように宣言できます。
export default App;
または
export default class App extends React.Component {...
を実行し、その後
import App from './App'
さらに何かを書き出したい場合は
名前付き
を使わずに宣言する輸出品です。
default
のようなキーワードを使用します。
export {
About,
Contact,
}
または
export About;
export Contact;
または
export const About = class About extends React.Component {....
export const Contact = () => (<div> ... </div>);
というようにインポートします。
import App, { About, Contact } from './App';
EDITです。
チュートリアルに間違いがあります。
main.js
ファイルを作成します。その他、ファイル外で使用されないのであれば、なぜ何かをエクスポートするのですか?正しい
main.js
:
import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, Link, browserHistory, IndexRoute } from 'react-router'
class App extends React.Component {
...
}
class Home extends React.Component {
...
}
class About extends React.Component {
...
}
class Contact extends React.Component {
...
}
ReactDOM.render((
<Router history = {browserHistory}>
<Route path = "/" component = {App}>
<IndexRoute component = {Home} />
<Route path = "home" component = {Home} />
<Route path = "about" component = {About} />
<Route path = "contact" component = {Contact} />
</Route>
</Router>
), document.getElementById('app'))
EDIT2です。
もう一つは、このチュートリアルは、v4とは異なるAPIを持つreact-router-V3に基づいていることです。
関連
-
[解決済み】React.jsの配列の子要素のユニークキーを理解する
-
[解決済み】ReactJS: マテリアルuiのブレークポイントについて
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避するにはどうすればよいですか?
-
[解決済み] ReactJS: Warning: setState(...): 既存の状態遷移の間に更新することはできません
-
[解決済み] react nativeで関数だらけのヘルパーファイルを作成する方法は?
-
[解決済み] 非必須項目に対するYupバリデーション
-
[解決済み] Uncaught (in promise) Error: リクエストに失敗、ステータスコード404
-
[解決済み] React JSでは、状態を直接変異させない、setState() react/no-direct-mutation-stateを使用する。
-
[解決済み] 矢印本体を囲む予期せぬブロックステートメント
-
[解決済み] Static HTML elements with event handlers require a role." を修正するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Typescript react - モジュール ''react-materialize'' の宣言ファイルが見つかりませんでした。'path/to/module-name.js' は暗黙のうちに any 型を持ちます。
-
[解決済み】Reactでclsxを使用する方法
-
[解決済み] テスト
-
[解決済み] マテリアルUIセレクトフィールドのマルチセレクト
-
[解決済み] ReactJS: Warning: setState(...): 既存の状態遷移の間に更新することはできません
-
[解決済み] 'Proptypes'が定義されていない
-
[解決済み] validateDOMNesting警告React
-
[解決済み] アクシオスは定義されていません
-
[解決済み] react-navigation v5を使ったreact-nativeアプリのAppNavigatorの構文を更新する。
-
[解決済み] Cross-envでyarnの実行時にenv変数が変更されない。