Об этой проблеме неоднократно сообщалось в проблемах реактивного репозитория, но, как представляется, боты или сопровождающий, реагирующий на проблемы, всегда закрывают проблему до ее фактического решения, что приводит к тому, что ответ так и не найден.
https://github.com/react-native-community/react-native-modal/issues/161
https://github.com/facebook/react-native/issues/19345
Если вы перейдете по этим ссылкам, вы увидите, что поток никогда не получает отвечать. На самом деле проблема закрыта без видимой причины. У меня есть проблема с этим, потому что теперь я сталкиваюсь с той же проблемой, и никто в команде или сообществе реагирующих на родство не смог ее выяснить, вероятно, из-за смехотворно непродуктивной модерации со стороны команды реагирующей нативной команды плюс ботов, которые запрограммирован на отключение производительных потоков по любой причине.
По сути, у меня есть встроенный диалог реакции, который показывает анимацию при переходе от visible={false}
к visible={true}
и обратно. (react-native-dialog
library.)
Если у меня есть одна функция, в которой я установил для этого диалогового окна значение false, а также для модального значения true setDialogVisible(false); setModalVisible(true);
, то для модальной переменной будет правильно установлено значение true
, но сам модал:
<Modal visible={modalVisible}></Modal>
будет невидимым (даже если видимая переменная = true
). Теперь, если я использую функцию setTimeout, чтобы подождать, пока анимация затухания диалога не разрешится, модал появится нормально после задержки. Использование setTimeout в функции пользовательского интерфейса очень подвержено ошибкам, и оно чрезвычайно хакерское, поэтому, на мой взгляд, использование этого решения в принципе ужасная идея. Но, насколько мне известно, это единственное, что работает корректно, поскольку модал никогда не появится во время анимации затухания диалога.
Кто-нибудь знает, как обойти это, не используя хакерский тайм-аут? Или хотя бы больше информации о том, почему это происходит?