react-native-community / react-native-hooks
- понедельник, 11 февраля 2019 г. в 00:17:21
JavaScript
React Native APIs turned into React Hooks for use in functional React components
React Native APIs turned into React Hooks allowing you to access asynchronous APIs directly in your functional components.
Note: This is an experimental library. As of this time React Native does not yet support React version 16.7 out of the box.
To get started with hooks in React Native right away, follow the instructions on this thread.
npm install react-native-hooksInstallation with yarn
yarn add react-native-hooksuseAccessibilityInfoimport { useAccessibilityInfo } from 'react-native-hooks'
const isScreenReaderEnabled = useAccessibilityInfo()useAppStateimport { useAppState } from 'react-native-hooks'
const currentAppState = useAppState()useCameraRollimport { 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>useClipboardimport { useClipboard } from 'react-native-hooks'
const [data, setString] = useClipboard()
<Text>{data}</Text>
<Button title='Update Clipboard' onPress={() => setString('new clipboard data')}>Set Clipboard</Button>useDimensionsimport { useDimensions } from 'react-native-hooks'
const dimensions = useDimensions()useGeolocationimport { useGeolocation } from 'react-native-hooks'
const [position, stopObserving, setRNConfiguration] = useGeolocation()
console.log('latitude: ', position.coords.latitude)useNetInfoimport { useNetInfo } from 'react-native-hooks'
const netInfo = useNetInfo()
console.log('netInfo type: ', netInfo.type)useKeyboardimport { useKeyboard } from 'react-native-hooks'
const keyboard = useKeyboard()
console.log('keyboard show: ', keyboard.show)
console.log('keyboard height: ', keyboard.height)useInteractionManagerimport { useInteractionManager } from 'react-native-hooks'
const interactionReady = useInteractionManager()
console.log('interaction ready: ', interactionReady)useDeviceOrientationimport { useDeviceOrientation } from 'react-native-hooks'
const orientation = useDeviceOrientation()
console.log('is orientation portrait: ', orientation.portrait)
console.log('is orientation landscape: ', orientation.landscape)