useMotiPressable()
useMotiPressable lets you access the interaction state of a parent MotiPressable component.
(If you need to access the interaction state of multiple MotiPressable parents, use useMotiPressables instead.)
Usage#
Wrap your component with MotiPressable.
Then, in the Item component:
Access a unique ID#
You can also access a pressable via unique ID. Say you have mutliple nested pressables:
By adding id="list", we can now access that unique component's interaction state.
Then, in the Item component, add list as the first argument of useMotiPressable:
Performance#
This hook runs on the native thread and triggers zero re-renders. Like all things moti, it has great performance out-of-the-box.
Similar to useMemo, you can also pass in a dependency array as the last argument to reduce updates:
API#
The following usages are valid:
If there's a unique MotiPressable component with an id prop as the parent:
Arguments#
- factoryis a worklet that receives the interaction state as the first argument, and returns a style object.
- idis a unique string to identify the parent- MotiPressablecomponent whose interaction state you're trying to access.
- depsis a dependency array, just like- useMemo
Returns#
A Moti state object, meant to be passed to any Moti component's state prop.