【发布时间】:2020-10-16 05:20:11
【问题描述】:
我是新手,需要一些帮助。我正在使用 Axios 从 REST API 获取数据。我有两个组件。父子组件。在父组件中,我从具有多条记录的 API 获取汇总数据,而当用户单击父组件中的特定记录时,子组件用于对记录的详细信息进行另一个 API 调用。 父组件有 3 个属性( Document-Number, document-Type & Approver )。当用户单击按钮时,我需要将“Doc-Number”和“Doc-Type”值传递给子组件 API URl。
注意:我在父 API 响应中没有任何专用 ID 属性,这就是我使用索引作为键的原因。
这是我的父组件
import React, { Component } from "react";
import axios from "axios";
import Getdetails from "./Getdetails";
class Parent extends Component {
constructor(props) {
super(props);
this.state = {
records: [],
errorMessage: "",
};
}
componentDidMount() {
axios
.get( "http://www.example.Api.com/generalInfo&limit=10&offset=2" )
.then((res) => {
this.setState({ records: res.data });
console.log(res);
})
}
render() {
const { records } = this.state;
return (
<div>
<ul>
{records.map((record, index) => (
<li key={index}>
Document Number : {record.Number}
Document Type: {record.documentType}
Approver : {record.approver}
//I Want to send the "document Number & documentType" to Childdetails component Url when user click on this button.
<button onClick={{record.Number} & {record.documentType}}>Get Details</button>
</li>
))}
</ul>
</div>
)
}
}
export default Parent;
这是我的子组件
import React, { Component } from "react";
import axios from "axios";
import Parent from "Parent";
class ChildDetails extends Component {
constructor(props) {
super(props);
this.state = {
getdetails: [],
errorMessage: "",
};
}
componentDidMount() {
axios
.get("http://www.example-Details-API.com/documentType={record.documentType}/id={record.Number}")
.then((res) => {
this.setState({ getdetails: res.data });
console.log(res);
})
}
render() {
const { getdetails } = this.state;
return (
<div>
<h1>Get Details</h1>
<ul>
<li> Number : {getdetails.Number} </li>
<li> Title : {getdetails.Title} </li>
<li> Submit Date : {getdetails.Date} </li>
<li> Site : {getdetails.site} </li>
<li> Requester : {getdetails.requesterName}</li>
<li> document Type : {getdetails.documentType}</li>
</ul>
</div>
)
}
}
export default ChildDetails
感谢大家,非常感谢您的帮助。
【问题讨论】:
-
您必须将该数据作为道具传递给您的子组件,当然,还要在要使用的子组件的父组件中添加渲染。类似于
-
嗨@pmiranda。感谢您的回复。我在来自 API 的响应中没有稳定的 Id 属性,这就是我使用索引的原因。我如何将该特定记录引用到子组件。你能给我看一下上面部分的代码片段吗?谢谢
-
那么,您的答案是否正确?