нативынх Alert'ов в iOS они наслаиваются друг на друга.
Я посмотрел, в файле RCTAlertManager.m есть метод -(void) invalidate, но я не вижу, чтобы он где-то ещё вызывался.
Если добавить [self invalidate] внутрь дополнительного else if к if (!_alertControllers) {, то все предыдущие алерты будут закрыты и открыт только самый последний. В общем, выглядит как костыль, работает как костыль и т.д.
Есть ли какие-нибудь другие варианты решения проблемы наслоения алертов в iOS? Форкать репо RN - не вариант. Остаётся, видимо, только создание кастомного нативного модуля Alert с этим костылём.
если изменения в одну строчку/файл то я делаю подобные вещи через postinstall
Ещё можно алерты в приложении менеджерить. У алертов есть коллбэк на закрытие (ну на нажатие кнопки фактически). И можно в своём менеджере трекать открытый текущий алерт и откладывать открытие следующего если уже открыто что-то, складывать в очередь и открывать после закрытия предидущего... как-то так...
Обсуждают сегодня