I've upgraded the react router to version 4 in my application. But now I'm getting the error
Warning: You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored
What is wrong with this routing?
import {
Switch,
BrowserRouter as Router,
Route, IndexRoute, Redirect,
browserHistory
} from 'react-router-dom'
render((
<Router history={ browserHistory }>
<Switch>
<Route path='/' component={ Main }>
<IndexRoute component={ Search } />
<Route path='cars/:id' component={ Cars } />
<Route path='vegetables/:id' component={ Vegetables } />
</Route>
<Redirect from='*' to='/' />
</Switch>
</Router>
), document.getElementById('main'))
Nested routes are not available from version react-router 4.x. Here is a basic example straight from react-router documentation on how to code for nesting route secnarios in v4.x.
Also have a look on this question as well Why can I not nest Route components in react-router 4.x?
IndexRoute and browserHistory are not available in the latest version, also nested Routes do not work with v4, Instead, you can specify Routes within the component Itself
Then in the Main Component
Similarly in the cars component
you will have