Ваши if() { ... } else { if() { ... } }
делают то же самое, я нахожу это странным.
Попробуйте обновить foodAllergies
способом immutable
(изменив ссылку) и посмотрите, помогает ли это и запускает обнаружение изменений .
modal.onDidDismiss().then(res => {
if (res.data !== undefined) {
this.foodAllergies = [...this.foodAllergies.map(foodAllergy => ({...foodAllergy})), res.data];
this.foodAllergies.push(res.data);
// you can keep your if and else if but I have removed them here for this example
this.categories.push(res.data.category);
}
}
});
Для ...this.foodAllergies.map(foodAllergy => ({...foodAllergy}))
, в зависимости от того, сколько глубоко вложенных объектов / массивов у вас в foodAllergy
, вы должны их постоянно копировать.
Так скажем, если foodAllergy
выглядит как { name: 'Peanuts', x: [1, 2, 3], y: { a: 1, b: 2 } }
, он станет:
...this.foodAllergies.map(foodAllergy => ({
...foodAllergy,
x: [...foodAllergy.x],
y: {... foodAllergy.y }
}))