I keep getting this error when trying to use links with react-router-dom
A
<Router>
may have only one child element
This is my code:
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import Layout from './Layout';
class App extends Component {
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">Wele to React</h1>
</header>
<p className="App-intro">
To get started, edit <code>src/App.js</code> and save to reload.
</p>
<Layout />
<div>
</div>
</div>
);
}
}
export default App;
I keep getting this error when trying to use links with react-router-dom
A
<Router>
may have only one child element
This is my code:
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import Layout from './Layout';
class App extends Component {
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">Wele to React</h1>
</header>
<p className="App-intro">
To get started, edit <code>src/App.js</code> and save to reload.
</p>
<Layout />
<div>
</div>
</div>
);
}
}
export default App;
Share
Improve this question
edited Sep 28, 2017 at 18:12
mplungjan
179k28 gold badges182 silver badges240 bronze badges
asked Sep 28, 2017 at 18:09
ThrokarThrokar
733 silver badges13 bronze badges
1
- 1 What does your Layout ponent look like? Could you post that in the question as well? – northsideknight Commented Sep 28, 2017 at 18:17
1 Answer
Reset to default 6Exactly like the error sounds, you need to wrap everything inside of <Router />
in a <div>
.
Before:
render() {
return (
<Router>
<Link />
<Link />
<Link />
</Router>
)
}
After:
render() {
return (
<Router>
<div>
<Link />
<Link />
<Link />
</div>
</Router>
)
}
React ponents can only have one child.