То, что я хочу сделать, это установить маршрутизацию к моему объекту.Например:
Я установил маршрутизацию для:
http://localhost:3000/projects
Он отображает список всех моих проектов (работает довольно хорошо)
Затем я хочу выбрать проект и посмотреть детали, но это не работает должным образом:
http://localhost:3000/projects/3
Как это выглядит:
![View of my projects list](https://i.stack.imgur.com/Ce0zp.png)
Когда я нажимаю Details
Кнопка отправляет мне на /projects:id
, но я получаю сообщение об ошибке, что элементы в project
не определены.
Мой код.Я храню всю маршрутизацию в основном App.js
файле:
class App extends Component {
render() {
return (
<div>
<BrowserRouter>
<div>
<Route exact path="/projects" component={ProjectsList} />
<Route exact path="/projects/:id" component={ProjectDetails} />
</div>
</BrowserRouter>
</div>
);
}
}
export default App;
У меня есть ProjectsList.js
компонент (я буду включать его код при необходимости), в ProjectsList.js
у меня есть listgroupс Project.js
, который выглядит следующим образом:
class Project extends Component {
render() {
return (
<ButtonToolbar>
<ListGroupItem>{this.props.project.name</ListGroupItem>
<Link to={`/projects/${this.props.project.id}`}>
<Button>Details</Button>
</Link>
</ButtonToolbar>
);
}
}
export default Project;
По Link to
мой браузер передает мне правильный URL (projects/2...
и т. д.), но я не знаю, как передать объектproject
до ProjectDetails.js
компонент.Код этого ниже:
class ProjectDetails extends Component {
render() {
return <li>{this.props.project.description}</li>;
}
}
export default ProjectDetails;
Не могли бы вы сказать, как передать объект project
на Link to
в ProjectDetails.js
?На данный момент я получаю description
как неопределенное (это очевидно, потому что я ничего не передаю компоненту с деталями).