RootTag¶
RootTag
— это непрозрачный идентификатор, присвоенный корневому представлению вашей поверхности React Native — т.е. экземпляру ReactRootView
или RCTRootView
для Android или iOS соответственно. Короче говоря, это идентификатор поверхности.
Когда использовать RootTag?¶
Для большинства разработчиков React Native, скорее всего, вам не придется иметь дело с RootTag
.
Теги RootTag` полезны, когда приложение отображает многочисленные корневые представления React Native и вам нужно обрабатывать вызовы нативных API по-разному в зависимости от поверхности. Примером может служить ситуация, когда приложение использует нативную навигацию, и каждый экран является отдельным корневым представлением React Native.
В нативной навигации каждое корневое представление React Native отображается в навигационном представлении платформы (например, Activity
для Android, UINavigationViewController
для iOS). Благодаря этому вы можете использовать навигационные парадигмы платформы, такие как родной внешний вид и навигационные переходы. Функциональность для взаимодействия с родными API навигации может быть открыта в React Native через native module.
Например, чтобы обновить строку заголовка экрана, можно вызвать API навигационного модуля setTitle("Updated Title")
, но ему нужно знать, какой экран в стеке нужно обновить. Здесь необходим тег RootTag
для идентификации корневого представления и его хостингового контейнера.
Другой случай использования RootTag
— когда вашему приложению нужно приписать определенный вызов JavaScript к native на основе его происхождения из корневого представления. Тег RootTag
необходим для того, чтобы отличить источник вызова от различных поверхностей.
Как получить доступ к RootTag... если он вам нужен¶
В версиях 0.65 и ниже доступ к RootTag осуществляется через legacy context. Чтобы подготовить React Native к функциям Concurrent, которые появятся в React 18 и последующих версиях, мы переходим на новейший Context API через RootTagContext
в 0.66. Версия 0.65 поддерживает как устаревший контекст, так и рекомендуемый RootTagContext
, чтобы дать разработчикам время на миграцию их сайтов вызова. Смотрите сводку изменений.
Как получить доступ к RootTag
через RootTagContext
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
Ломающее изменение в 0.65¶
RootTagContext
ранее назывался unstable_RootTagContext
и был заменен на RootTagContext
в 0.65. Пожалуйста, обновите все случаи использования unstable_RootTagContext
в вашей базе данных.
Ломающее изменение в 0.66¶
Устаревший контекстный доступ к RootTag
будет удален и заменен на RootTagContext
. Начиная с версии 0.65, мы призываем разработчиков активно переносить доступ к RootTag
на RootTagContext
.
Планы на будущее¶
По мере развития новой архитектуры React Native будут появляться будущие итерации RootTag
, с намерением сохранить тип RootTag
непрозрачным и предотвратить трэш в кодовых базах React Native. Пожалуйста, не полагайтесь на тот факт, что RootTag в настоящее время является псевдонимом числа! Если ваше приложение использует RootTag, следите за нашими журналами изменений версий, которые вы можете найти здесь.