#reactjs
Вопрос:
Я видел несколько ответов на этот вопрос, но все еще не мог понять
Я использую
`" "react-router": "^5.2.1",
"react-router-dom": "^5.2.1",`
// app.js
import history from "./history";
import { Router } from 'react-router';
export const App = () => {
return (
<ReduxProvider store={store}>
<Router history={history}>
<div>
<Route path="/first/" component={MN} />
<Route path="/test/" component={Test} />
</div>
</Router>
</ReduxProvider>
);
};
// history.js
import { createBrowserHistory } from 'history';
export default createBrowserHistory();
//вызов компонента
import history from "./history";
....
history.push('mn/testing')
//mn.js
import history from "../history";
const Mn = () => {
return (
<div>
<Router history={history}>
<Route exact path="*/testing" component={DashBoard} />
/>
</Router>
</div>
);
Изменить: У меня есть вложенные маршруты, это создает ошибку?
Комментарии:
1. Вы можете попробовать с
import { Router } from 'react-router-dom'
2. @Asifvora это не работает
3. Вы установили
react-router-dom
и настроили?4. @Asifvora да, у меня есть. Это изменение URL-адреса, но не загрузка страницы
5. @Asifvora обновил мои вопросы. пожалуйста, проверьте
Ответ №1:
Вы должны попробовать использовать useHistory()
крючок, предоставленный react-маршрутизатором
import { useHistory } from "react-router-dom";
function HomeButton() {
const history = useHistory();
function handleClick() {
history.push("/home");
}
return (
<button type="button" onClick={handleClick}>
Go home
</button>
);
}
Комментарии:
1. это приводит к ошибке : react-dom.development.js:336 Неперехваченная ошибка типа: функция.применить не является функцией