Метод remove
Метод remove вызывают у объекта
EmitterSubscription.
После вызова связанный обработчик больше не получает события.
Повторный вызов безопасен и ничего не меняет.
Синтаксис
subscription.remove();
Параметры
| Параметр | Описание |
|---|
Пример
Давайте снимем подписку на 'change' у AppState:
import { AppState } from 'react-native';
const sub = AppState.addEventListener('change', () => {});
sub.remove();
Обработчик перестаёт вызываться при смене состояния приложения.
Пример
Давайте хранить подписку в ref и снимать её по кнопке:
import { useRef } from 'react';
import { View, Text, Pressable, Linking } from 'react-native';
export default function App() {
const subRef = useRef(null);
const listen = () => {
subRef.current = Linking.addEventListener('url', () => {});
};
const stop = () => {
subRef.current?.remove();
subRef.current = null;
};
return (
<View>
<Pressable onPress={listen}>
<Text>abcde</Text>
</Pressable>
<Pressable onPress={stop}>
<Text>12345</Text>
</Pressable>
</View>
);
}
На экране две области нажатия: первая включает слушатель ссылки, вторая вызывает remove.
Смотрите также
-
класс
EmitterSubscription,
который описывает объект подписки -
метод
addEventListener,
который слушает входящие ссылки -
метод
addEventListener,
который слушает смену состояния приложения -
класс
BackHandler,
который перехватывает кнопку назад на Android