I have 2 arrays cart and cartCopy, inside that array I have an object. Data is inserted in cart and cartCopy. When updating the variant or extras in cart I first create a separate list for them variantList=[] and extrasList=[], now when updating variantList/extrasList the values in cart and cartCopy also changes even though I did not update them.
{"product_name:"",variants:[],extras:[]}
Provider class changing variant for reference and Setting Product to Edit. Whenever I update the variant, cart and cartCopy variant also changes. How to I separate the values in cart?
class ProductDetailsProvider extends ChangeNotifier {
List<VariantDetails>? variants = [];
List<VariantDetails>? selectedVariants = [];
List<AddOnDetails>? selectedExtras = [];
addVariant(VariantDetails? item) {
var exist =
variants?.indexWhere((element) => element.typeID == item?.typeID);
if (exist != -1) {
variants?[exist!] = item!;
} else {
variants?.insert(0, item!);
}
}
setProduct(CartData item) async {
variants = item.variant;
selectedExtras = item.extras;
selectedVariants = item.variant;
notifyListeners();
}
}
Add to Cart Class
class CartProvider extends ChangeNotifier {
List<CartData>? cart = [];
List<CartData>? cartCopy = [];
addToCart(context, CartData cartItem, isUpdate) async {
cart?[exist!] = cartItem;
cartCopy?[exist!] = cartItem;
}}