#reactjs #react-router #react-router-dom #router
Вопрос:
здравствуйте, у меня проблема с динамическим маршрутизатором, это мой код маршрутизатора
lt;Routergt; lt;Navbar /gt; lt;Switchgt; lt;Route path={`/dashboard/buyList`} component={BuyList} /gt; lt;Route path={`/dashboard/receipt`} component={WarehouseReceipt} /gt; lt;Route path='/dashboard/new' component={NewBuy} exact/gt; lt;Route path='/dashboard/buyList:id' component={BuyInfo}/gt; lt;Route path='/dashboard' component={DashboardDetail} exact/gt; lt;Route component={NotFound} /gt; lt;/Switchgt; lt;/Routergt;
моя проблема в том, где, как я должен установить buyList:id и определить его в своем проекте?
Комментарии:
1. Можете ли вы прояснить свой вопрос и в чем проблема? Если вы просто спрашиваете, как связать путь, просто отрисовайте
Link
компонент или используйтеhistory.push
«/панель мониторинга/buyList123» или аналогичный. Вы уверены, что не хотели добавлять разделитель путей к маршруту, т. Е.path='/dashboard/buyList/:id'
вместоpath='/dashboard/buyList:id'
?2. он спрашивает о вложенных маршрутах
3. спасибо за вашу помощь, да, я хочу иметь такой путь, как этот список покупок:идентификатор, но я не знаю, как реагировать, чтобы понять идентификатор продукта и должен его показать?
4. Можете ли вы поделиться с нами тем, где вы привязываетесь к своим маршрутам? Если вы правильно настроили маршруты и ссылки,
Router
программа повторно отправит обновленный URL-адрес и отобразит соответствующий маршрут.5. Ссылка @AshishKamble может быть из любого места в контексте маршрутизации. Как насчет того, чтобы дождаться, пока OP заявит о проблеме и включит весь соответствующий код, прежде чем мы начнем делать предположения о том, что им нужно?
Ответ №1:
вот небольшой пример того, как это работает во вложенных маршрутах,
function BuyList () { return ( lt;divgt; lt;h1gt;BuyListlt;/h1gt; lt;ulgt; {buyList.map(({ name, id }) =gt; ( lt;li key={id}gt; lt;Link to={`/buylist/${id}`}gt;{name}lt;/Linkgt; lt;/ligt; ))} lt;/ulgt; lt;hr /gt; lt;Route path={`/buylist/:id`}gt; lt;Buy /gt; lt;/Routegt; lt;/divgt; ) }
с помощью реактивного крючка,
let { path, url } = useRouteMatch(); lt;Switchgt; lt;Route exact path={path}gt; lt;h3gt;Please select a buy.lt;/h3gt; lt;/Routegt; lt;Route path={`${path}/:buyId`}gt; lt;Buy /gt; lt;/Routegt; lt;/Switchgt;
и купить это,
function Buy() { let { buyId } = useParams(); return ( lt;divgt; lt;h3gt;{buyId}lt;/h3gt; lt;/divgt; ); }