Comment imbriquer des routes dans React Router v4?
Est-il possible d'imbriquer des itinéraires de Réagir Routeur v4?
Cela fonctionne:
<Router basename='/app'>
<main>
<Route path='/' component={AppBar} />
<Route path='/customers' component={Customers} />
</main>
</Router>
Ce n'est pas:
<Router basename='/app'>
<Route path='/' component={AppBar}>
<Route path='/customers' component={Customers} />
</Route>
</Router>
Clients Composant:
import React, { Component, PropTypes } from 'react'
import styled from 'styled-components'
export default class Customers extends Component {
render () {
return (
<Container>
<h1>Customers</h1>
</Container>
)
}
}
const Container = styled.section`
height: 100%;
padding: 15px;
overflow: auto;
`
source d'informationauteur Raphael Rafatpanah
Vous devez vous connecter pour publier un commentaire.
Meilleur modèle que j'ai trouvé jusqu'à présent.
Je peux juste garder cette imbrication à l'intérieur d'un composant et tout fonctionne de nice, y compris hmr(Si vous utilisez webpack, n'oubliez pas de positionner
output.publicPath
à"/"
)J'ai adapté cette de la documentation, semblent si loin. Sans doute manque quelque chose d'évident, et oui ce n'est pas la v4 façon, mais nous avons besoin de tous les itinéraires définis dans un seul endroit.
Vous êtes à la barre d'applications composant est chargé de rendre les Clients. Pour les clients d'être appelé, vous devez rendre les enfants de la barre d'applications. Tout ce qui est directement imbriquées sous la barre d'accès est un enfant de la barre d'applications.
Veuillez noter que seules les applications alot sera rendu lorsque vous visitez "/". Barre d'applications et de Clients sera rendu lorsque vous visitez des "clients".
Si quelqu'un veut avoir imbriqués les routes sans avoir à taper le préfixe de wrapper de route, j'ai créé quelque chose comme cela dans TSX:
Importations:
Interfaces:
NestedRoute et NestedRoutes wrapper:
Et les itinéraires avec wrapper: