Routeur Réagir: Route défini dans le composant de l'enfant ne fonctionne pas

voix
0

Dans le composant principal i utiliser l'interrupteur

function Router(props) {

    return (<main>
        <Switch>
            <Route exact path='/prices/'
                   render={(props) => <PricesPage {...props} />}
            />
            <Route path=/prices/add/
                   render={(props) => <PriceGroupAddFormConnected {...props}/>}
            />
        </Switch>
    </main>) 
}

Et dans l'un des enfants PricesPage i définir la route pour rendre une boîte de dialogue

PricesPage:

function PricesPage(props) {

    return (<Child/>) 
}

Enfant:

function Child(props) {

    return (
            <><Route exact path=/prices/dialog component={Dialog}/>
            <Child1/></>)
        )

}

Et dans child1 i définir un lien.

child1:

function Child1(props) {

    return (
            <Link to=/prices/dialog/>)
        )

}

Attendu: quand la liaison a changé -> dialogue est ouvert

Courant: lien changé, mais l'ouverture de dialogue is'not. Mais alors je voie dans le composant définir principal, cela fonctionne, mais je dois garder les autres composants des enfants sous dialogue, il ne suffit pas

Créé 09/10/2019 à 12:57
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Lorsque vous frappez /prices/, votre itinéraire /prices/dialogest créé parce qu'il est dans un composant enfant <PricesPage>. Mais, quand vous allez /prices/dialog, votre itinéraire /prices/dialogest décharger parce que /prices/dialogne correspondent pas exactement /prices/ni que /prices/add/.

Vous avez 2 options:

  1. Retirez la exacttouche <Route path='/prices/' render={(props) => <PricesPage {...props} />}. Donc , quand vous frappez /prices/dialog, vous aurez à la fois des /prices/composants et /prices/dialogcomposants rendus (même pour /prices/add/)
  2. Ajouter votre itinéraire /prices/dialogdans votre routeur de côté vos autres voies /prices/et/prices/add/

Je recommande le 2e si vous avez besoin séparé rendu et 1er un si vous pouvez avoir plusieurs rendre en même temps.

Créé 10/10/2019 à 11:14
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more