Как вложить React Routes в домашнюю страницу

Я пытаюсь понять, как правильно вкладывать маршруты внутри домашней страницы. Вот мой роутер:

var appRouter = (
  <Router history={ hashHistory }>
    <Route path="/" component={ Navbar }>
      <IndexRoute component={ Homepage }/>
      <Route path="items" component={ Homepage }>
        <Route path=":item" component={ ItemShow }/>
      </Route>
      <Route path="nothome" component={ NotHome }/>
    </Route>
  </Router>
)

Наличие IndexRoute и Route, которые указывают на домашнюю страницу, не кажется оптимальным, но дает мне поведение, которое я ищу. Вот весь мой проект (я написал это только для иллюстрации этого момента).

//React
var React = require("react");
var ReactDOM = require("react-dom");
//Router
var ReactRouter = require('react-router')
var Router = ReactRouter.Router
var Route = ReactRouter.Route
var IndexRoute = ReactRouter.IndexRoute
var hashHistory = ReactRouter.hashHistory
var Link = ReactRouter.Link

var items = [1, 2]

var Navbar = React.createClass({
  render(){
    return(
      <div>
        <Link to="/"><h1>Navbar</h1></Link>
        {this.props.children}
      </div>
    )
  }
})

var Homepage = React.createClass({
  render(){
    return(
      <div>
        <h2>This is the homepage</h2>
        <ItemList/>
        <Link to="/nothome">Another page</Link>
        {this.props.children}
      </div>
    )
  }
})

var ItemList = React.createClass({
  render(){
    return(
      <ul>
        {items.map( item => {
          return <Item key={item} id={item}></Item>
        })}
      </ul>
    )
  }
})

var Item = React.createClass({
  handleClick(){
    hashHistory.push("items/" + this.props.id)
  },
  render(){
    return(
      <li onClick={this.handleClick}>Item {this.props.id}</li>
    )
  }
})

var ItemShow = React.createClass({
  render(){
    return(
      <div>
        You clicked on item {this.props.params.item}
      </div>
    )
  }
})

var NotHome = React.createClass({
  render(){
    return(
      <h2>This is not the homepage</h2>
    )
  }
})

var appRouter = (
  <Router history={ hashHistory }>
    <Route path="/" component={ Navbar }>
      <IndexRoute component={ Homepage }/>
      <Route path="items" component={ Homepage }>
        <Route path=":item" component={ ItemShow }/>
      </Route>
      <Route path="nothome" component={ NotHome }/>
    </Route>
  </Router>
)

document.addEventListener("DOMContentLoaded", ()=>{
  ReactDOM.render(appRouter, document.getElementById("root"))
})

Другой вариант - поместить компонент Homepage в начало моего компонента ItemShow, а не вкладывать маршруты, но это выглядит так же плохо, если не хуже.

Кажется, должен быть предпочтительный способ получить такое поведение. Что это?

Ответы на вопрос(1)

Ваш ответ на вопрос