- Во-первых, пропустите go через это:
localhost:3000/sale - Blank page (need to fix)
localhost:3000/sale/product - Blank page (need to fix)
Причина в Приложение. js файл, у вас есть exact
prop объявлено в этой строке:
<Route exact path='/' component={Customer} />
Что приводит к тому, что вложенные маршруты после /
, например, /sale
или /sale/product
не работают.
Вы поняли, это уже? Почему маршрут /admin/all-products
или /admin/add-product
работает нормально? Поскольку в этой строке не объявлена опора exact
:
<Route path='/admin' component={Admin} />
Поэтому, пожалуйста, удалите exact
опору в Customer
маршруте, чтобы он заработал!
Во-вторых, ИМО, вы должны
отделить ваши
Customer
и
Admin
маршруты с самого начала. Под
отдельно я имею в виду, что вам лучше правильно аутентифицировать свой рабочий процесс. Обратите внимание на следующее:
рабочий процесс реакции маршрутизатора A Customer
не должен иметь права на просмотр маршрутов Admin
.
Обновление 1 из ответа Хема:
Но / admin и его дочерние маршруты идут на пустую страницу.
Имейте в виду что вы используете Switch
компонент внутри приложения. js. Как и обычный switch/case
, он будет соответствовать самому первому пути (случай для нормального switch/case
) сверху вниз.
Так что для вашего случая:
<Switch>
<Route path='/' component={Customer} /> // <- Have no exact here
<Route path='/admin' component={Admin} />
</Switch>
Потому что очень первый путь в Switch
равен /
, поэтому он всегда идет к маршруту Customer
независимо от того, И /admin
- это вложенный маршрут /
, поэтому он никогда не сможет достичь маршрута Admin
.
Тогда, если добавить точное значение к <Route path='/' component={Home} />
, можно переключиться на страницу /sale
и То же самое для /sale/product
Да, как я уже говорил, потому что вы избавились от exact
опоры на маршруте Customer
в App. js. Оба /sale
& /sale/product
являются вложенными маршрутами /
, оба ProductList
& ProductDetails
являются вложенными компонентами внутри Customer
. Неважно, добавлен exact
в маршрут Home
или нет.
IMO, вам лучше очистить слой маршрутизации заранее:
- Приложение первого уровня:
/
- Второй уровень Main (вложенные маршруты внутри приложения):
/
для Customer
, /admin
для Admin
- Страницы третьего уровня (вложенные маршруты внутри Main):
/sale
, /admin/all-products
- Вложенные страницы четвертого уровня (вложенные маршруты внутри страниц):
/sale/product