【发布时间】:2020-08-17 10:36:05
【问题描述】:
目前正在构建一个购物车,一个组件保存产品,onClick(add to cart) 我将项目添加到本地存储,然后在另一个组件中检索并显示本地存储中的项目。
我当前的设置在刷新时有效,并且在添加新项目时会覆盖旧数据。我假设在刷新状态重置为空。您将如何实现数据以在有或没有状态的情况下持久存在?
class ProductsContainer extends Component {
constructor(props) {
super(props);
this.state = { products: [] };
this.addToCart = this.addToCart.bind(this);
}
addToCart = (item) => {
let productList = this.state.products;
productList.push({ img: item.img, name: item.name, price: item.price });
this.setState({ products: productList });
localStorage.setItem("products", JSON.stringify(productList));
};
...
...
...
render(){
return(
<button className="add-item" onClick={() => this.addToCart(item)}>
)
});
class ShoppingCart extends Component {
constructor(props) {
super(props);
this.state = { products: [] };
}
componentDidMount() {
const allProducts = localStorage.getItem("products");
this.setState({ products: JSON.parse(allProducts) });
}
...
...
...
}
【问题讨论】:
标签: javascript reactjs local-storage