RootTag
Ta strona została przetłumaczona przez PageTurner AI (beta). Nie jest oficjalnie zatwierdzona przez projekt. Znalazłeś błąd? Zgłoś problem →
RootTag to nieprzezroczysty identyfikator przypisany do natywnego widoku głównego twojej powierzchni React Native — czyli odpowiednio instancji ReactRootView lub RCTRootView dla Androida i iOS. W skrócie, jest to identyfikator powierzchni.
Kiedy używać RootTag?
Większość programistów React Native prawdopodobnie nie będzie potrzebować korzystać z RootTagów.
RootTagi są przydatne, gdy aplikacja renderuje wiele widoków głównych React Native i musisz różnie obsługiwać wywołania natywnych API w zależności od powierzchni. Przykładem jest aplikacja korzystająca z natywnej nawigacji, gdzie każdy ekran to osobny widok główny React Native.
W natywnej nawigacji każdy widok główny React Native jest renderowany w widoku nawigacyjnym platformy (np. Activity na Androidzie, UINavigationViewController na iOS). Dzięki temu możesz wykorzystać paradygmaty nawigacji platformy, takie jak natywny wygląd i wrażenia oraz przejścia nawigacyjne. Funkcjonalność interakcji z natywnymi API nawigacji może być udostępniona React Native poprzez moduł natywny.
Na przykład, aby zaktualizować pasek tytułowy ekranu, wywołałbyś API modułu nawigacyjnego setTitle("Updated Title"), ale musiałoby ono wiedzieć, który ekran w stosie zaktualizować. Tutaj niezbędny jest RootTag, aby zidentyfikować widok główny i jego kontener hostujący.
Innym przypadkiem użycia RootTag jest sytuacja, gdy twoja aplikacja musi przypisać określone wywołanie JavaScript do natywnego kodu na podstawie widoku głównego, z którego pochodzi. RootTag jest niezbędny do rozróżnienia źródła wywołania z różnych powierzchni.
Jak uzyskać dostęp do RootTag... jeśli go potrzebujesz
W wersjach 0.65 i starszych RootTag jest dostępny poprzez kontekst dziedziczony (legacy context). Aby przygotować React Native do funkcji Concurrent nadchodzących w React 18 i nowszych, migrujemy do najnowszej Context API za pomocą RootTagContext w wersji 0.66. Wersja 0.65 obsługuje zarówno kontekst dziedziczony, jak i zalecany RootTagContext, aby dać programistom czas na migrację miejsc wywołań. Zobacz podsumowanie zmian powodujących niezgodność.
Jak uzyskać dostęp do RootTag za pomocą RootTagContext.
import {RootTagContext} from 'react-native';
import NativeAnalytics from 'native-analytics';
import NativeNavigation from 'native-navigation';
function ScreenA() {
const rootTag = useContext(RootTagContext);
const updateTitle = title => {
NativeNavigation.setTitle(rootTag, title);
};
const handleOneEvent = () => {
NativeAnalytics.logEvent(rootTag, 'one_event');
};
// ...
}
class ScreenB extends React.Component {
static contextType: typeof RootTagContext = RootTagContext;
updateTitle(title) {
NativeNavigation.setTitle(this.context, title);
}
handleOneEvent() {
NativeAnalytics.logEvent(this.context, 'one_event');
}
// ...
}
Dowiedz się więcej o Context API dla klas i hooków w dokumentacji Reacta.
Zmiana powodująca niezgodność w wersji 0.65
RootTagContext był wcześniej nazwany unstable_RootTagContext i został zmieniony na RootTagContext w wersji 0.65. Zaktualizuj wszelkie użycia unstable_RootTagContext w swoim kodzie.
Zmiana powodująca niezgodność w wersji 0.66
Dostęp do RootTag przez dziedziczony kontekst zostanie usunięty i zastąpiony przez RootTagContext. Począwszy od wersji 0.65, zachęcamy programistów do aktywnej migracji dostępu do RootTag na RootTagContext.
Plany na przyszłość
Wraz z postępami w nowej architekturze React Native, będą przyszłe iteracje RootTag, z zamiarem zachowania nieprzezroczystego typu RootTag i zapobiegania niepotrzebnym zmianom w kodzie React Native. Prosimy, nie polegaj na tym, że RootTag obecnie jest aliasem do liczby! Jeśli twoja aplikacja polega na RootTagach, śledź nasze dzienniki zmian wersji, które możesz znaleźć tutaj.