I created dynamic routes based on an id param passed to my react route. But, I would like the url to show as follows: "projects/:id=projectname"
But I would like to hide the ":id=" part of the string. How can I achieve this?
My code below:
Link to direct to the routes:
<Link to = {{pathname: `${PROJECT}=${props.projectDetails.id}`, state: {projectDetails: props.projectDetails}}}/>
Route defined:
Route exact path = "/projects/:id" component = {Project} drawerOpen = {this.state.drawerOpen} toggleDrawer = {this.toggleDrawer}/>
The route component:
import React, { Component } from 'react';
import DashboardLayout from '../components/dashboardLayout';
import * as Constants from '../common/constants'
import { setCurrentProject } from '../store/project/projectActions';
import '../styles/app.css'
class Project extends Component {
constructor( props ) {
super( props )
this.state = {
listItems: ["Home", "Projects"],
theme: Constants.darkTheme,
formModalOpen: false,
alertModalOpen: false,
deleteAlertActive: false,
domainUsers: [],
currentProject: props.location.state.projectDetails,
value: 0
}
}
componentDidMount() {
this.props.dispatch( setCurrentProject(this.props.location.state.projectDetails) )
}
render() {
return (
<div>
<DashboardLayout
appState = {this.state.currentProject.id}
isOpen = {this.props.drawerOpen}
toggleDrawer = {this.props.toggleDrawer}
menuItems = {this.state.listItems}
listItemClicked = {this.setTitle}/>
</div>
);
}
}
export default Project;