我已经成功地使用.map函数来遍历axios GET请求数据并将其分配给我的map函数中的正确元素。但是,当我将删除功能与按钮onclick元素一起实现时,会收到未定义的'无法读取属性'_id'。
我的问题是,可以从我的外部删除功能访问单用户的地图功能状态,还是可以在我的地图功能中运行我的删除功能?
// Axios GET request to get the object data from users collection
axios.get('http://localhost:3000/api/users')
.then(response => {
this.setState({ users: response.data });
})
.catch(function (error) {
console.log(error);
})
// Delete function referencing the ID of the user
delete() {
axios.get('http://localhost:3000/api/users/delete/' + this.state.singleuser._id)
.then(
console.log(this.singleuser._id)
)
.catch(err => console.log(err))
}
// Mapping out the state of singleuser from the GET request above
{this.state.users.map(function (singleuser, i) {
const shouldHide = user.group.toString() === singleuser.group.toString()
return shouldHide
? null
: <tr key={i} style={{ color: '#fff' }}>
<td>{singleuser.name}</td>
<td>{singleuser.email}</td>
<td style={{ display: 'none' }} selected={shouldHide}>{singleuser.group}</td>
<td><button onClick={this.delete} className="waves-effect waves-light btn-small red">Edit</button></td>
</tr>
}.bind(this))
}
答案 0 :(得分:1)
您必须使用箭头功能,因为它们没有本地状态 例如
join