#.net #angular #web-applications
#.net #угловой #веб-приложения
Вопрос:
Здравствуйте, у меня проблема в этом фрагменте кода:
private addOrUpdateItemInCompare(items: ICompareItem[], itemToAdd: ICompareItem, quantity: number): ICompareItem[] {
const index = items.findIndex(i => i.id === itemToAdd.id);
if(index === -1){
itemToAdd.quantity = quantity;
items.push(itemToAdd);
}
else{
items[index].quantity = quantity;
}
return items;
}
Когда я пытаюсь использовать этот метод, я получаю сообщение об ошибке
«Не удается прочитать свойство ‘findIndex’ неопределенного типа»
Я понятия не имею, в чем проблема, потому что в методе, подобном 1-му:
private addOrUpdateItemInBasket(items: IBasketItem[], itemToAdd: IBasketItem, quantity: number): IBasketItem[] {
const index = items.findIndex(i => i.id === itemToAdd.id);
if(index === -1){
itemToAdd.quantity = quantity;
items.push(itemToAdd);
}
else{
items[index].quantity = quantity;
}
return items;
}
Все работает.
Спасибо за все ответы.
Комментарии:
1. Можете ли вы показать нам фрагмент, в котором вызывается функция
addOrUpdateItemInCompare
?
Ответ №1:
Ваше items
значение массива имеет либо undefined
, либо null
. Пожалуйста, убедитесь, что ваш items
имеет значение.
Комментарии:
1. я проверяю это, и да, элементы-IComareItems не определены, но когда я проверяю это, это должен быть интерфейс экспорта ICompare { id: строка; элементы: ICompareItem[]; clientSecret?: строка; } интерфейс экспорта ICompareItem { id: номер; ProductName: строка; цена: номер; pictureUrl: строка; марка: строка; тип: строка; запас: номер; цвет: строка; материал: строка; размеры: строка; количество: номер; } класс экспорта Compare реализует ICompare { id = uuidv4(); элементы: ICompareItem[]; }
2. если возможно, можете ли вы воспроизвести это в stackblitz.com ?
3. Это большая работа, но я могу поделиться этим кодом с вами на GitHub