Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
51 of 196 menu
◀ ▶

Класс PanResponder

Класс PanResponder не рисует элементы сам. Метод create принимает объект конфигурации и возвращает panHandlers. Объект panHandlers раскрывают на View через spread, чтобы View получал события жеста.

Синтаксис

import { PanResponder } from 'react-native'; const pan = PanResponder.create({}); <View {...pan.panHandlers} />;

Методы

Метод Описание
create Собирает обработчики жеста и возвращает panHandlers.

Пример

Давайте повесить пустые обработчики на блок:

import { useRef } from 'react'; import { View, Text, PanResponder } from 'react-native'; export default function App() { const pan = useRef( PanResponder.create({ onStartShouldSetPanResponder: () => true, }), ).current; return ( <View {...pan.panHandlers}> <Text>abcde</Text> </View> ); }

На экране текст 'abcde' внутри области, которая перехватывает касание.

Пример

Давайте вывести смещение пальца в консоль:

import { useRef } from 'react'; import { View, Text, PanResponder } from 'react-native'; export default function App() { const pan = useRef( PanResponder.create({ onMoveShouldSetPanResponder: () => true, onPanResponderMove: (_, gestureState) => { console.log(gestureState.dx, gestureState.dy); }, }), ).current; return ( <View {...pan.panHandlers}> <Text>12345</Text> </View> ); }

На экране '12345'; при перетаскивании в консоли растут dx и dy.

Смотрите также

  • метод create,
    который описывает конфигурацию жеста
  • компонент Pressable,
    который обрабатывает простое нажатие
  • компонент View,
    который принимает panHandlers
  • класс Animated,
    который двигает элемент по жесту
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить