【发布时间】:2019-05-17 01:31:08
【问题描述】:
我正在做我的第一个反应 ptoject。我是 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}]
我很好,我可以在我的 react 应用程序中通过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;
我有来自 project 类型的 api 的所有数据。
我的问题是,如何在单击按钮时显示我命名为 ProjectDetails.js 的组件?我想在单独的视图中显示存储在project 中的所有数据(新页面或类似的东西)。
视图如下所示:
感谢您的建议!
编辑:
基于@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;
EDIT2:
在@Axnyff 回答中的Project.js 中,我刚刚编辑了该行:
{this.state.showDetails && (
<ProjectDetails project={this.props.project} />
)}
我通过道具传递了项目,现在它也像我想要的那样工作。点击后显示我点击的project.name。
【问题讨论】:
标签: javascript html reactjs react-bootstrap