React - 如何获取 id 并使用它来删除
React - How to get an id and use it to delete
所以在反应中我做了一个按钮来删除一些数据所以我需要通过 id 获取汽车并使用反应 js axios 删除它所以我得到的响应是一个空数组所以有人可以帮助我。
代码如下:
在服务数据文件中:
get(id) {
return http.get(`/get/${id}`);
}
delete(id) {
return http.delete(`/delete/${id}`);
}
Component.jsx
this.state = {
idCars: null,
carName: "",
carModel: "",
cars: [],
submitted: false
};
}
getCar(idCars) {
DataService.get(idCars)
.then(response => {
this.setState({
cars: response.data
});
console.log(response.data);
})
.catch(e => {
console.log(e);
});
}
componentDidMount() {
this.getCar(this.props.match.params.idCars);
this.retrieveCars()
}
deleteC() {
DataService.delete(this.state.cars.idCars)
.then(response => {
this.props.history.push('/Classement');
this.refreshList()
})
.catch(e => {
console.log(e);
});
}
render() {
const { cars } = this.state;
return (
<div ><tbody>
{
cars.map(data => (
<tr >
<th scope="row">{data.idCars}</th>
<td>{data.carName}</td>
<td>{data.carModel}</td>
<td>
<button className="btn btn-danger" onClick={this.deleteC}>
Remove
</button>
</td>
</tr>
))
}
而且什么也没有删除,我该如何解决这个问题
目前您的 DeleteC 函数尝试读取:
this.state.cars.idCars
但 this.state.cars 是一个数组,因此 idCars 仅针对给定的索引定义,例如:
this.state.cars[0].idCars
您可以为此修改您的 onClick 行为:
onClick={() => deleteC(data.idCars)}
这样,将使用所选行的 idCars 调用 deleteC 函数。
所以在反应中我做了一个按钮来删除一些数据所以我需要通过 id 获取汽车并使用反应 js axios 删除它所以我得到的响应是一个空数组所以有人可以帮助我。
代码如下:
在服务数据文件中:
get(id) {
return http.get(`/get/${id}`);
}
delete(id) {
return http.delete(`/delete/${id}`);
}
Component.jsx
this.state = {
idCars: null,
carName: "",
carModel: "",
cars: [],
submitted: false
};
}
getCar(idCars) {
DataService.get(idCars)
.then(response => {
this.setState({
cars: response.data
});
console.log(response.data);
})
.catch(e => {
console.log(e);
});
}
componentDidMount() {
this.getCar(this.props.match.params.idCars);
this.retrieveCars()
}
deleteC() {
DataService.delete(this.state.cars.idCars)
.then(response => {
this.props.history.push('/Classement');
this.refreshList()
})
.catch(e => {
console.log(e);
});
}
render() {
const { cars } = this.state;
return (
<div ><tbody>
{
cars.map(data => (
<tr >
<th scope="row">{data.idCars}</th>
<td>{data.carName}</td>
<td>{data.carModel}</td>
<td>
<button className="btn btn-danger" onClick={this.deleteC}>
Remove
</button>
</td>
</tr>
))
}
而且什么也没有删除,我该如何解决这个问题
目前您的 DeleteC 函数尝试读取:
this.state.cars.idCars
但 this.state.cars 是一个数组,因此 idCars 仅针对给定的索引定义,例如:
this.state.cars[0].idCars
您可以为此修改您的 onClick 行为:
onClick={() => deleteC(data.idCars)}
这样,将使用所选行的 idCars 调用 deleteC 函数。