import React, { Component } from 'react';import ReactDOM from 'react-dom';import { Link } from 'react-router'class Beacons extends Component { constructor() { super(); console.log("componentDidMount running"); this.state = { data:[ {name:"N
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { Link } from 'react-router'
class Beacons extends Component {
constructor()
{
super();
console.log("componentDidMount running");
this.state = {
data:[
{name:"Nikko Laus1" , beacon:"" ,button:"Edit Beacon"},
{name:"Sam Collins", beacon:"",button:"Edit Beacon"},
{name:"Carl Smith Wesson", beacon:"",button:"Edit Beacon"},
{name:"Peter Austin", beacon:"",button:"Edit Beacon"},
{name:"Peter Austin", beacon:"",button:"Edit Beacon"},
{name:"Tini Titus", beacon:"",button:"Edit Beacon"},
{name:"Sarra Cams", beacon:"",button:"Edit Beacon"}
]
};
fetch("http://api-env.bt2qjip33m.ap-south-1.elasticbeanstalk.com/api/v1/beacons",{
headers: {
'Accept': 'application/json, application/xml, text/plain, text/html, *.*',
'Content-Type': 'application/json'
},
method : 'GET'
})
.then(function(response) {
console.log("response")
console.log(response)
return response.json();
})
.then(function(data) {
console.log("data")
console.log(data)
})
.catch(function(error){
console.log("error")
console.log(error)
});
}
componentDidMount(){
console.log("hello");
}
static contextTypes = {
router: React.PropTypes.object.isRequired
}
handleSubmit(event){
this.context.router.push('/components/NewBeacon');
}
render() {
let rows = this.state.data.map(person =>
{
return <TableRow key={person.id} data={person}/>
});
return (<div><div className="row float-right">
<button className="nav-link btn btn-block btn-success" onClick={this.handleSubmit.bind(this)} >
Add a new Beacon </button>
</div><br/><br/>
<div className="animated fadeIn">
<br /><div className="card" style={{ width: 75 + '%' }}>
<div className="card-header">
<i className="fa fa-align-justify"></i> Manage Information
</div>
<div className="card-block">
<table className="table table-hover table-outline mb-0 hidden-sm-down">
<thead className="thead-default">
<tr>
<th className="text-center">Name</th>
<th className="text-center">Beacon</th>
<th className="text-center">Edit Beacon</th>
</tr>
</thead>
<tbody>{rows}</tbody>
</table></div>
</div>
</div>
</div>
);
}
}
class TableRow extends React.Component
{
constructor()
{
super();
}
render()
{
return (<tr>
<td className="text-center">{this.props.data.name}</td>
<td className="text-center">{this.props.data.beacon}</td>
<td className="text-center"><center><Link to={'/Components/EditBeacon'} style= {{ width: 40 + '%' }} className="nav-link btn btn-block btn-success" activeClassName="active">
{this.props.data.button}</Link></center></td>
</tr>
);
}
}
ReactDOM.render(
<Beacons />,
document.getElementById('root')
);
export default Beacons;
我在这个页面上做了一个表
现在我想点击api,从该api获取的结果将显示在此页面上的表格中
要使用get方法调用api调用的API,其结果将以表格形式显示
fetch(`https://www.reddit.com/r/dogs.json`)
.then(response => {
return response.json();
})
.then(json => {
// doSomeThing(json.someProperty)
// this.setState({jsonData: json});
})
.catch((error) => {
// AHHHH! An Error!
});
您必须根据您拥有的数据类型(.json(),. blob()等等)从获取响应中获取数据. Using Fetch
在第二个.then()中,您实际上可以设置状态,将有效负载分配到您的商店,或以某种方式处理它,您的组件将接收它.在上面的示例中,您将呈现从jsonData获得的任何内容.
