Это неправильное использование <Link>
.
Чтобы программно перейти на другой маршрут, вы можете сделать:
this.props.history.push("/newRoute");
при условии, что вы передаете объект history
, используя либо withRouter
, либо имея текущий компонент внутри Switch
заявление, например.
import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter, Route, Switch, withRouter } from "react-router-dom";
import "./styles.css";
class App extends React.Component {
state = { b: false };
handleClick = () => {
this.props.history.push("/horse");
};
render() {
return (
<div className="App">
<button onClick={this.handleClick}>click</button>
</div>
);
}
}
const RoutedApp = withRouter(App);
const rootElement = document.getElementById("root");
ReactDOM.render(
<BrowserRouter>
<RoutedApp />
</BrowserRouter>,
rootElement
);
CodeSandbox здесь .