У меня есть список продуктов.Это имеет категорию, subCategory1, subCategory2 и т. Д.
Когда пользователь отменяет выбор элемента категории.Они также не выбирают элементы подкатегории 1, подкатегории 2 и т. Д., Поскольку они являются дочерними элементами исходного элемента категории, например:
![enter image description here](https://i.stack.imgur.com/pCrF3.gif)
![enter image description here](https://i.stack.imgur.com/KKTps.jpg)
![enter image description here](https://i.stack.imgur.com/8N1NG.jpg)
Итак, у меня есть цикл for, который просматривает дочерние элементы списка категорий и удаляет их следующим образом:
// Remove a category item and all of its children
if (categoryType == "category") {
List<String> subCategory1Children = List<String>.from(
snapshot.data.documents[gridIndex]['subCategory1Children']);
// Remove the subcategory items
for (int i = 0; i < foodDrinkMenuElements['subCategory1'].length; i++) {
String subID = foodDrinkMenuElements['subCategory1'][i];
int removalIndex = _indexOfListGridElement('subCategory1', subID);
if (subCategory1Children.contains(subID)) {
_removeCategoryGridItem(removalIndex, subID, 'subCategory1');
}
}
//Remove the actual item being pressed
_removeCategoryGridItem(listIndex + 1, id, categoryType);
}
Который вызывает _removeCategoryGridItem () следующим образом:
void _removeCategoryGridItem(int removalIndex, String id, String categoryType) {
_FoodandDrinkKey.currentState.removeItem(removalIndex,
(BuildContext context, Animation<double> animation) {
return _buildListItem(removalIndex, animation);
});
foodDrinkMenuElements[categoryType].remove(id);
}
Цикл For всегда заканчивается после удаления 1 элемента списка.Я предполагаю, что это из-за оператора return в функции _removeCategoryGridItem.
Я видел другие ответы, в которых говорится, чтобы поместить его в список и выполнить список, но я не вижу, как это применимо здесь.
Спасибо за помощь