Выбор ответа Junior Компоненты и стили обновлено
React Native: Pressable
Вопрос
Почему в новых экранах обработку нажатий пишут на Pressable, а не на TouchableOpacity?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Он гибче: состояние pressed для стилей, долгое нажатие, hitSlop, и он рекомендован. Pressable это универсальный примитив: стили и содержимое можно задать функцией от состояния (({ pressed }) = ...), есть долгое нажатие, расширение области нажатия, ховер для устройств с мышью.
Варианты ответа
- Он гибче: состояние
pressedдля стилей, долгое нажатие,hitSlop, и он рекомендованправильный ответ TouchableOpacityудалён из React Native, и старый код перестал собиратьсяPressableработает только на iOS, а на Android по-прежнему нужны компонентыTouchable*TouchableOpacityне поддерживаетonPress, толькоonPressInиonPressOut
Разбор
Pressable это универсальный примитив: стили и содержимое можно задать функцией от состояния (({ pressed }) => ...), есть долгое нажатие, расширение области нажатия, ховер для устройств с мышью. Touchable* продолжают работать, но документация советует Pressable. Он кроссплатформенный, а onPress у TouchableOpacity есть.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.