メニューのナビゲーション要素とは別の要素にコンテンツをレンダリングしようとしていますが、メニューバーと同じ要素にレンダリングを続けます。私はルータからリンクを分離しようとしましたが、その後エラーが発生しました。ここでReact JS - React Router - コンテンツを個別にレンダリングする
は、私は私のエントリファイルにインポートしています私のルータコンポーネント、次のとおりです。
import React from 'react';
import ReactDOM from 'react-dom';
import ReactDOMServer from 'react-dom/server';
import {BrowserRouter as Router, Route, Link, StaticRouter} from 'react-router-dom';
import Home from './Home.jsx';
import About from './About.jsx';
import BlogList from './BlogList.jsx';
const Routes =() => (
<Router>
<div>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>
<li><Link to="/blog">Blog</Link></li>
</ul>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/blog" component={BlogList} />
</div>
</Router>
)
export default Routes;
ReactDOM.render((
<Routes />
), document.getElementById('main-nav'))
私の質問は次のとおりです。
について、ホームからのコンテンツをレンダリングするにはどうすればよいですとブログのコンポーネントは別々の要素になっているので、 "#main-nav"の内部でレンダリングしませんか?ルートは1つの子要素しか持つことができません。
自分のdivコンテナにルートを追加しようとするとエラーが発生します。 ulにnav要素をラップすると、エラーが発生します。私は同じ問題を持っていたし、私はそれがサブコンポーネントにHTML5をspliting固定
<nav id="main-nav">
<div>
<ul>
<li a href="/">Home</a></li>
<li a href="/about">About</a></li>
<li a href="/blog">Blog</a></li>
</ul>
</div>
</nav>
<div id="content">
Home/ABout/Blog Content in here
</div>
リアクションルータはパスを使用してURLを照合してコンポーネントをレンダリングするため、2番の答えが必要です。つまり、 '/'はあなたのアプリケーションのすべての単一のURLにマッチします。 rootパスとのみ一致させるために 'exact' propを使います。 – Li357
それは私のコードを更新する意味があります。 – Rick
ありがとうございますまた、すべてのルートでnavbarを作ろうとしていますか? – Li357