Reacționăm Router: Calea definită în componenta copil nu este de lucru

voturi
0

În componenta principală folosesc comutator

function Router(props) {

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

Și într-unul dintre copii PricesPage i defini ruta pentru a face un dialog

PricesPage:

function PricesPage(props) {

    return (<Child/>) 
}

Copil:

function Child(props) {

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

}

Și în child1 am defini un link.

Child1:

function Child1(props) {

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

}

Așteptat: atunci când link-ul modificat -> de dialog este deschis

Curent: link-ul sa schimbat, dar deschiderea is'not de dialog. Dar apoi am defini traseul în componenta principală, funcționează, cu toate acestea am nevoie pentru a păstra alte componente pentru copii sub dialog, deci nu este de ajuns

Întrebat 09/10/2019 la 12:57
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Când te -a lovit /prices/, traseul /prices/dialogeste creat deoarece este într - o componentă de copil <PricesPage>. Dar, când te duci la /prices/dialog, traseul /prices/dialogeste descărcarea , deoarece /prices/dialognu se potrivesc exact /prices/nici de mult /prices/add/.

Ai 2 optiuni:

  1. Scoateți exactcheia de pe <Route path='/prices/' render={(props) => <PricesPage {...props} />}. Deci , atunci când te -a lovit /prices/dialog, veți avea ambele /prices/componente și /prices/dialogcomponente prestate (aceeași pentru /prices/add/)
  2. Adăugați traseul /prices/dialogîn routerul deoparte celelalte traseele /prices/și/prices/add/

Vă recomandăm cea doilea, dacă aveți nevoie de unul separat face și prima, dacă puteți avea mai multe face în același timp.

Publicat 10/10/2019 la 11:14
sursa de către utilizator

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