#reactjs #react-router #react-router-dom
Вопрос:
У меня есть навигация с реакцией.Пути маршрутизатора следующие:
- пример 1: приводит к «/пример1»
- пример 2: приводит к «/пример2»
- пример 3: приводит к «/example3»
если я нажму пример 3 на начальной странице (/), я хочу перейти к «/пример3». если я нажму пример 3 на странице примера 2 (/пример 2), я хочу перейти к «/?id=x».
Как я могу этого достичь? В моем случае он отображается только один раз, а затем застрял на нем.
Заранее благодарю вас, Джей Доу
Комментарии:
1.
if I click example 3 from the example2 page
вы написали какой-нибудь код для этого? Если да, пожалуйста, предоставьте то же самое2. да, здесь: <Переключатель> <Переключатель><Путь маршрута={«пример1»} компонент={пример1}/> {окно. location.href.включает(«/информация/») ? ( <Путь маршрута={«?идентификатор=x»} компонент={пример3}/> ):(<Путь маршрута={«?идентификатор=x»} компонент={пример3}/><Путь маршрута={«пример3»} компонент={пример3}/>)} <Путь маршрута={«пример3»} компонент={пример3}/><Точный путь маршрута={«/»} компонент={начальная страница}/> <Точный путь маршрута={«/»} компонент={начальная страница}/></Переключатель>
Ответ №1:
Было бы гораздо лучше, если бы вы могли предоставить нам образец вашего кода. Но, как правило, для обработки чего-то подобного наш код будет выглядеть примерно так, как показано ниже:
import React from 'react'
import { useHistory } from 'react-router-dom'
export default function App() {
const history = useHistory()
return (
<div>
<button onClick = {() => history.push('/example1')}>go to example 1</button>
<button onClick = {() => history.push('/example2')}>go to example 2</button>
<button onClick = {() => history.push('/example3')}>go to example 3</button>
</div>
);
}
и вам нужно определить свои маршруты в компоненте маршрутизации как bewlo:
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
export default function Routings() {
<Router>
<Switch>
<Route path="/example1" component={Example1} />
<Route path="/example2" component={Example2} />
<Route path="/example3" component={Example3} />
</Switch>
</Router>
}