Une solution de ce type devrait fonctionner :
index.js
Il semble que vous fassiez tout correctement ici. Mais je ne sais pas si JobseekerMain.js
se trouve à l'intérieur du <BrowserRouter>
. Il devrait l'être.
De même, il n'est pas nécessaire d'utiliser la fonction onClick
de la propriété <Link>
de la composante. Faites-vous cela pour une raison particulière ?
Voici un exemple concret. Voyez si c'est ce que vous recherchez.
https://codesandbox.io/s/nameless-grass-bufkj
import React from "react";
import ReactDOM from "react-dom";
import {BrowserRouter, Switch, Route, Link} from 'react-router-dom';
function App() {
return (
<BrowserRouter>
<AllRoutes/>
</BrowserRouter>
);
}
function AllRoutes() {
return (
<Switch>
<Route exact path='/' component={JobSeekerMain}/>
<Route exact path='/editable' component={EditableTable}/>
</Switch>
);
}
class JobSeekerMain extends React.Component {
constructor(props) {
super(props);
}
render() {
return(
<React.Fragment>
<div>I am JobSeekerMain</div>
<Link to='/editable'>Editable Table</Link>
</React.Fragment>
);
}
}
function EditableTable() {
return(
<React.Fragment>
<div>I am Editable Table</div>
<Link to='/'>JobSeekerMain</Link>
</React.Fragment>
)
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
UPDATE :
Voici comment vous pouvez utiliser le lien de Material-UI avec le lien de react-router-dom.
https://codesandbox.io/s/small-field-fqor1
import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter, Switch, Route, Link } from "react-router-dom";
import LinkMUI from "@material-ui/core/Link";
function App() {
return (
<BrowserRouter>
<AllRoutes />
</BrowserRouter>
);
}
function AllRoutes() {
return (
<Switch>
<Route exact path="/" component={JobSeekerMain} />
<Route exact path="/editable" component={EditableTable} />
</Switch>
);
}
class JobSeekerMain extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<React.Fragment>
<div>I am JobSeekerMain</div>
<div>This is option #1: wrap LinkMUI with react-router-dom Link </div>
<Link to="/editable">
<LinkMUI>Hi</LinkMUI>
</Link>
</React.Fragment>
);
}
}
function EditableTable(props) {
function handleClick() {
props.history.push("/");
}
return (
<React.Fragment>
<div>I am Editable Table</div>
<div>This is option #2: use LinkMUI and the onClick attribute</div>
<LinkMUI onClick={handleClick}>JobSeekerMain</LinkMUI>
</React.Fragment>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);