0
に反応私はreact-router-dom
4.1.1と私のコンポーネントをレンダリングしようとすると、次のエラーを受信し続けるのインストール:はルータV4
Uncaught Error:
React.Children.only
expected to receive a single React element child.
ここに私のapp.js
ファイルです:
import React from 'react';
import {BrowserRouter as Router, Route} from 'react-router-dom';
import Nav from './components/Nav/nav';
import Search from './components/Search/search';
import Favorites from './components/Favorites/favorites';
const App =() => (
<Router>
<div className="app">
<Nav />
<Route exact path="/" component={Search}/>
<Route path="/favorites" component={Favorites}/>
</div>
</Router>
);
export default App;
そして、ここではnav.jsx
次のとおりです。
import React from 'react';
import {BrowserRouter as NavLink} from 'react-router-dom';
const Nav =() => (
<ul className="nav">
<li><NavLink exact to="/" activeClassname="active">Search</NavLink></li>
<li><NavLink to="/favorites" activeClassname="active">Favorites</NavLink></li>
</ul>
);
export default Nav;
<Nav />
をapp.js
から削除するとレンダリングされますが、nav.jsx
ファイルに何が問題なのかはわかりません。
OMGありがとうございます!私が探していたチュートリアルでは、すべてのコンポーネントが1つのコンポーネントに含まれていたので、 'import {BrowserRouter as Router、Route、Link} 'を書いて、別のコンポーネントにコピー/ペーストしました。私はそれが問題だとは気付かなかった。ありがとうございました! – fafafariba
@fafafaribaうん、私はチュートリアルに従うだけで、それを通って何が起こっているのか理解することはお勧めできません。 'BrowserRouter as Router'は使い易さのために' BrowserRouter'にエイリアスを与えています。答えが助けになった場合は、upvotingと受け入れを検討してください! – Li357