2

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">Welcome 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;
mplungjan
  • 169,008
  • 28
  • 173
  • 236
Throkar
  • 73
  • 3
  • 11

1 Answers1

6

Exactly 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 components can only have one child.

Chase DeAnda
  • 15,963
  • 3
  • 30
  • 41