В настоящее время при создании корзины покупок один компонент содержит товары. В onClick (добавить в корзину) я добавляю элемент в локальное хранилище, а затем в другом компоненте извлекаю и отображаю элементы из локального хранилища.
My текущая настройка работает, но при обновлении sh и новой, когда добавляется новый элемент, она перезаписывает старые данные. Я предполагаю, что на refre sh состояние сбрасывается до пустого. Как бы вы реализовали данные для сохранения с или без состояния?
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) });
}
...
...
...
}