文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
ajax 请求
react 的组件中,一般我们在 componentDidMount
事件中做 ajax 请求,并获得数据后修改 state。
请求后台获取数据可以用任何的 ajax 库,建议使用: 原生的 fetch
或者 axios
库。
例如新闻案例:
import React, { Component } from 'react'
import axios from 'axios';
class NewsList extends Component {
constructor(opt) {
super(opt);
this.state = {
newsList: []
};
}
componentDidMount() {
// 发送 ajax 请求到后台并获取数据
axios
.get('/db.json')
.then(res => {
// console.log(res.data.news);
this.setState({newsList: res.data.news});
});
}
delNews(id) {
// 不模拟从后台 ajax 请求删除数据
// 直接在当前数组中移除数据。
if(window.confirm('您是否要真的删除吗?')) {
this.setState(preState => {
return {
newsList: preState.newsList.filter( item => item.id !== id)
}
});
}
}
render () {
return (
<div>
<table className="table is-striped is-hoverable is-bordered is-fullwidth">
<thead>
<tr>
<th>编号</th>
<th>新闻标题</th>
<th>编辑</th>
</tr>
</thead>
<tbody>
{
this.state.newsList.map((item, index) => {
return (
<tr key={index}>
<td>{item.id}</td>
<td>{item.title}</td>
<td>
<button
className="button is-primary"
onClick={ this.delNews.bind(this, item.id) }
>
删除
</button>
</td>
</tr>
)
})
}
</tbody>
</table>
</div>
)
}
}
export default NewsList;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论