Вам необходимо обновить родительское состояние, когда продукт будет успешно удален.
Это можно сделать, определив лог c обновления в родительском компоненте, а затем вызовите эту функцию из дочернего компонента при успешном удалении.
// Define your update product logic here
// It will get productId (or any other unique key) as parameter
// and will use that unique key to update the producsts
// I've added an example logic but yours can be different
updateProducts = (productId) => {
let productsClone = { ...this.state.productData };
const productIndex = productsClone.findIndex(item => item.id == productId);
if (productIndex > -1) {
productsClone.splice(productIndex, 1);
this.setState({ productData: productsClone });
}
}
tabRow() {
return this.state.productData.map(function (object, i) {
// pass your `this.updateProducts` as a props to your child component
return <Table obj={object} key={i} updateProducts={this.updateProducts} />;
});
}
deleteProduct = () => {
axios
.delete("http://localhost:8080/products/" + this.props.obj.id)
.then((res) => {
if (res.status === 200) {
// Finally, here, call the updateProucts when API return success and make sure to pass the correct key as a parameter
this.props.updateProducts(res.data.id);
} else {
console.log("Not refresh");
}
})
.catch((err) => console.log(err));
};