React Native APIs turned into React Hooks allowing you to access asynchronous APIs directly in your functional components.
Note: You must use React Native >= 0.59.0
To get started with hooks in React Native right away, follow the instructions on this thread.
npm install react-native-hooks
Installation with yarn
yarn add react-native-hooks
- useAccessibilityInfo
- useAppState
- useCameraRoll
- useClipboard
- useDimensions
- useGeolocation
- useNetInfo
- useKeyboard
- useInteractionManager
- useDeviceOrientation
import { useAccessibilityInfo } from 'react-native-hooks'
const isScreenReaderEnabled = useAccessibilityInfo()
import { useAppState } from 'react-native-hooks'
const currentAppState = useAppState()
import { useCameraRoll } from 'react-native-hooks'
const [photos, getPhotos, saveToCameraRoll] = useCameraRoll()
{
photos.map((photo, index) => /* render photos */)
}
<Button title='Get Photos' onPress={() => getPhotos()}>Get Photos</Button>
import { useClipboard } from 'react-native-hooks'
const [data, setString] = useClipboard()
<Text>{data}</Text>
<Button title='Update Clipboard' onPress={() => setString('new clipboard data')}>Set Clipboard</Button>
import { useDimensions } from 'react-native-hooks'
const dimensions = useDimensions()
import { useGeolocation } from 'react-native-hooks'
const [position, stopObserving, setRNConfiguration] = useGeolocation()
console.log('latitude: ', position.coords.latitude)
import { useNetInfo } from 'react-native-hooks'
const netInfo = useNetInfo()
console.log('netInfo type: ', netInfo.type)
import { useKeyboard } from 'react-native-hooks'
const keyboard = useKeyboard()
console.log('keyboard show: ', keyboard.show)
console.log('keyboard height: ', keyboard.height)
import { useInteractionManager } from 'react-native-hooks'
const interactionReady = useInteractionManager()
console.log('interaction ready: ', interactionReady)
import { useDeviceOrientation } from 'react-native-hooks'
const orientation = useDeviceOrientation()
console.log('is orientation portrait: ', orientation.portrait)
console.log('is orientation landscape: ', orientation.landscape)