Reageer Router: Route gedefinieerd in kind component werkt niet

stemmen
0

In hoofdcomponent i wordt knop

function Router(props) {

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

En in een van PricesPage kinderen definieer ik op weg naar een dialoog te maken

PricesPage:

function PricesPage(props) {

    return (<Child/>) 
}

Kind:

function Child(props) {

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

}

En in child1 ik definiëren een Link.

child1:

function Child1(props) {

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

}

Verwacht: wanneer koppeling veranderd -> venster wordt geopend

Huidige: koppeling veranderd, maar dialoogvenster is'not opening. Maar toen ik definiëren route in de belangrijkste component, het werkt, maar ik nodig om andere kinderen componenten onder dialoog te houden, dus het is niet genoeg

De vraag is gesteld op 09/10/2019 om 12:57
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

Als je geraakt /prices/, uw route /prices/dialogwordt gemaakt, omdat het op een kind onderdeel van <PricesPage>. Maar, als je naar /prices/dialog, je route /prices/dialogis te lossen, omdat /prices/dialogniet exact overeenkomen /prices/noch dan /prices/add/.

Je hebt 2 opties:

  1. Verwijder de exactsleutel op <Route path='/prices/' render={(props) => <PricesPage {...props} />}. Dus als je hit /prices/dialog, zul je allebei /prices/component en /prices/dialogcomponent gemaakt (idem voor /prices/add/)
  2. Voeg uw route /prices/dialogin uw router opzij uw andere routes /prices/en/prices/add/

Ik adviseer de 2e een als je apart te maken en 1 een als je meerdere kan hebben te maken op hetzelfde moment nodig hebben.

antwoordde op 10/10/2019 om 11:14
bron van user

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