#reactjs #routes #react-router #react-router-dom
#reactjs #маршруты #react-маршрутизатор #react-router-dom
Вопрос:
Я пытаюсь перенаправить на новую страницу в своем приложении react с помощью react router. В настоящее время, когда я нажимаю на навигационную ссылку проектов, URL-адрес меняется с localhost:3000
на localhost:3000/projects
на, однако страница не меняется. Я должен нажать enter в строке поиска, чтобы перейти на новую страницу после нажатия на ссылку.
мой app.js выглядит примерно так
class App extends Component {
render() {
return (
<div className="App">
<NavBar />
<BrowserRouter>
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/projects" component={Projects} />
</Switch>
</BrowserRouter>
</div>
);
}
}
и ссылка в моем NavBar.js выглядит вот так..
import { NavLink, BrowserRouter } from 'react-router-dom'//what I am importing
import { Link } from 'react-scroll';
<BrowserRouter>
<NavLink to="/projects">Projects</NavLink>
</BrowserRouter>
Есть причина, по которой это не сработает?
Ответ №1:
Вам не нужно переносить navbar.js в браузере маршрутизатора. Вместо этого переместите свой компонент navbar в маршрутизаторе браузера в app.js . Убедитесь, что компонент находится внутри маршрутизатора браузера, но за пределами коммутатора. Это должно сработать
Ответ №2:
В вашем NavBar.js , попробуйте <NavLink to="/projects">Projects</NavLink>
вместо просто проектов.
Комментарии:
1. Я пробовал это, но страница не выполняет переход. Когда я щелкаю правой кнопкой мыши по libk и нажимаю «открыть ссылку в новой вкладке», это работает.
Ответ №3:
Я думаю, вы забыли ‘/’ <NavLink to="projects">Projects</NavLink>
перед тем, как перейти к свойству. попробуйте это: <NavLink to="/projects">Projects</NavLink>
и просто оберните свой самый внешний компонент с <BrowserRouter></BrowserRouter>
помощью like app.js или index.js .
Комментарии:
1. Я пробовал это, но страница не выполняет переход. Когда я щелкаю правой кнопкой мыши по libk и нажимаю «открыть ссылку в новой вкладке», это работает.
Ответ №4:
Отключение <React.StrictMode>
в App.js позволяет переключаться между компонентами.
Комментарии:
1. Возможно, вы можете добавить ссылку на документацию, чтобы было легче понять, почему это работает.