我一直面临一个问题。我已经尝试解决它了。但是,我不知道如何让它发挥作用。我知道我的问题是在推送或删除 API 后我没有重新更新列表新状态?我怎样才能解决这个问题?这样我就不用手动刷新页面了?
我有 2 个组件,但在这篇文章中,我将仅展示我用于删除并从 API 读取这篇文章的组件,该组件称为“产品”。PostForm 组件是一个单独的组件,导入到创建/删除组件中。
我在 setState 中添加了这段代码以进行删除。我想我需要一个函数来重新更新状态,但不知道如何操作。希望得到帮助 // ProductList: filter((item) => item.id !== ProductId),
class Products extends Component {
state = {
productList: [],
statusMsg: "",
};
// READ
getDataFromProductsApi() {
axios
.get("https://localhost:44366/api/Products/")
.then((res) => {
console.log(res.data);
this.setState({
productList: res.data,
});
})
.catch((error) => {
console.log(error);
this.setState({ statusMsg: "Error retreiving data" });
if (axios.isCancel(error)) return;
});
}
componentDidMount() {
this.getDataFromProductsApi();
}
// DELETE
deleteProduct = (productId, productName) => {
if (window.confirm("Are you sure? you want to delete")) {
axios
.delete(`https://localhost:44366/api/Products/${productId}`)
.then((response) => {
console.log(response);
this.setState({
statusMsg: `Product name: ${productName} With the ID: ${productId} was removed!`,
// productList: filter((item) => item.id !== productId),
});
});
}
};
showProducts = () => {
return (
<table className="customers">
<tbody>
<tr>
<th>ID</th>
<th>Name</th>
<th>Category</th>
<th>Price</th>
<th>Delete</th>
</tr>
泛舟湖上清波郎朗
相关分类