RNBW.wiki
🇷🇺
🇷🇺Русский 🇬🇧English 🇪🇸Español 🇨🇳中文 🇩🇪Deutsch

Все записи

Три строки против залипшего значка обновления — и заплатка на сам React Native

15 октября 2026

Правка #7873 слита 14 октября. Она крошечная: один файл, 21 добавленная строка против четырёх удалённых, из которых собственно кода — три. Интересна она не размером, а тем, где лежит.

Правят не своё приложение, а React Native

Файл называется patches/react-native+0.81.6.patch. Это заплатка на исходники самой платформы, на которой написано приложение. Так делают, когда ошибка не в своём коде, а ниже — и ждать исправления сверху нельзя.

Что было сломано

Потянули список вниз, началось обновление. Ушли на другой экран. Обновление закончилось, пока экран был убран. Вернулись — значок обновления висит раскрытым, и уже навсегда.

Почему так выходило

Когда обновление заканчивается, приложение делает два действия подряд: сначала помечает у себя «обновление закончено», потом просит систему убрать значок. А просьба убрать начинается с проверки: если экран сейчас не на виду — выйти молча, ничего не делая.

Вот и всё. Пометка уже стоит, значит повторно сюда не зайдут никогда: условие для повторного входа требует, чтобы состояние изменилось, а оно уже изменилось. Система при этом так и осталась в положении «обновляюсь».

Самое любопытное — почему этого не замечали годами. У обратного действия, запуска, страховка есть: если обновление не успело начаться, оно запускается при первой же отрисовке заново. То есть о случае «не успели начать» подумали, а о случае «не успели закончить» — нет.

Что добавили

Три строки в тот момент, когда экран возвращается на место: если по нашим данным обновление кончилось, а система всё ещё считает, что идёт — остановить. Отложенная просьба срабатывает ровно тогда, когда условие, из-за которого её отбросили, наконец выполнилось.

Отдельно стоит отметить дисциплину

В том же файле уже лежала другая заплатка, про скругление углов. Автор не просто дописал свою рядом, а переписал шапку файла, разведя две записи: у каждой теперь своё условие, при котором её можно снять.

Заплатка на чужую библиотеку — это долг. Когда условие снятия записано, через год её не побоятся тронуть.

Кого это касается

Любого списка, который обновляется потягиванием вниз. Не отдельного раздела, а всего приложения сразу — таких изменений за последние недели было немного.

Есть ли это в приложении

Пока нет. Последняя вышедшая версия — 2.0.46 от 8 октября, а правку слили 14-го. В какой версии она появится, Rainbow заранее не объявляет.

Что меняется в коде кошелька — на странице rnbw.wiki/pulse

$RNBW #RNBW

Эти записи выходят в канале @RNBWwiki_cis.