2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個贊
您需要將當(dāng)前項(xiàng)目的索引發(fā)送給removeProduct函數(shù),以便它知道要刪除哪個項(xiàng)目。
<Container>
<div>
{
cart.map((item, index) => ({
<p>item.productName</p>
<p>item.price</p>
<i class="fas fa-trash-alt mr-1" style={{ color: '#ff6b6b' }} onClick={() => this.removeProduct(index)}></i>
))
}
</div>
</Container>
而在removeProduct功能上,你必須刪除該index位置的項(xiàng)目。
const removeProduct = (indexToRemove) => {
const cart = JSON.parse(localStorage.getItem("cartProduct"));
cart.splice(indexToRemove, 1)
localStorage.setItem("cartProduct", JSON.stringify(cart));
window.location.reload();
};

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個贊
更改 removeproduct 代碼如下。并將 product-id 作為參數(shù)傳遞給函數(shù)。
const removeProduct = (productId) => {
let cart = JSON.parse(localStorage.getItem("cartProduct"));
cart = cart.filter(productData => productData._id !== productId)
localStorage.setItem("cartProduct", JSON.stringify(cart));
window.location.reload();
};
有關(guān)filter方法的更多詳細(xì)信息,請參閱 MDN 文檔。
如下更改您的組件以將 id 參數(shù)傳遞給函數(shù)。
<Container>
<div>
{
cart.map(item => (
<p>item.productName</p>
<p>item.price</p>
<i
class="fas fa-trash-alt mr-1"
style={{ color: '#ff6b6b' }}
onClick={() => removeProduct(item._id)}
></i>
))
}
</div>
</Container>
添加回答
舉報(bào)