Я делаю свой первый реактивный проект.Я новичок в программировании на JS, HTML, CSS и даже в веб-приложениях.
Я пытаюсь отобразить некоторую информацию при нажатии кнопки.
У меня есть API, который выглядит следующим образом:
endpoint: https://localhost:44344/api/Projects
My Data from it:
[{"id":1,"name":"Mini Jira","description":"Description for first project in list","tasks":null},{"id":2,"name":"Farm","description":"Description for second one","tasks":null}]
И я в порядке с этим, я могу легко получить это с помощью axios
в моем приложении реакции.
Теперь я покажу вам мой Project.js
Компонент:
import React, { Component } from "react";
import { ListGroupItem, Button, ButtonToolbar } from "react-bootstrap";
import ProjectDetails from "./ProjectDetails";
class Project extends Component {
render() {
return (
<ButtonToolbar>
<ListGroupItem>{this.props.project.name}</ListGroupItem>
<Button onClick={Here i want to display new component with details }bsStyle="primary">Details</Button>
</ButtonToolbar>
);
}
}
export default Project;
У меня есть все данные из API в project
типе.
Мой вопрос, как отобразить компонент, который я назвал ProjectDetails.js
при нажатии кнопки?Я хочу показать все данные, хранящиеся в project
из моего API в отдельном представлении (новая страница или что-то подобное).
Вид выглядит так:
![enter image description here](https://i.stack.imgur.com/3wLDU.png)
Спасибо за любые советы!
РЕДАКТИРОВАТЬ:
на основе ответа @Axnyff, я редактировал Project.js
.все работает нормальноНо когда я хочу (для тестирования) передать project.name
, я получаю ошибку map of undefined
.Мой ProjectDetails.js
:
import React, { Component } from "react";
class ProjectDetails extends Component {
state = {};
render() {
return <li>{this.props.project.name}</li>;
}
}
export default ProjectDetails;
РЕДАКТИРОВАТЬ2:
В Project.js
в @Axnyff отвечает, я только что отредактировал эту строку:
{this.state.showDetails && (
<ProjectDetails project={this.props.project} />
)}
Я прошел проект по реквизиту, теперь он работает так, как я хочу.После клика он отображает project.name
, на который я нажал.