mirror of
https://github.com/zhigang1992/react-native-bottom-sheet.git
synced 2026-06-15 10:27:55 +08:00
72 lines
1.6 KiB
Markdown
72 lines
1.6 KiB
Markdown
---
|
|
id: usage
|
|
title: Usage
|
|
slug: /modal/usage
|
|
hide_table_of_contents: true
|
|
---
|
|
|
|
Here is a simple usage of the **Bottom Sheet Modal**, with non-scrollable content. For more scrollable usage please read [Scrollables](../scrollables).
|
|
|
|
```tsx
|
|
import React, { useCallback, useMemo, useRef } from 'react';
|
|
import { View, Text, StyleSheet, Button } from 'react-native';
|
|
import {
|
|
BottomSheetModal,
|
|
BottomSheetModalProvider,
|
|
} from '@gorhom/bottom-sheet';
|
|
|
|
const App = () => {
|
|
// ref
|
|
const bottomSheetModalRef = useRef<BottomSheetModal>(null);
|
|
|
|
// variables
|
|
const snapPoints = useMemo(() => ['25%', '50%'], []);
|
|
|
|
// callbacks
|
|
const handlePresentModalPress = useCallback(() => {
|
|
bottomSheetModalRef.current?.present();
|
|
}, []);
|
|
const handleSheetChanges = useCallback((index: number) => {
|
|
console.log('handleSheetChanges', index);
|
|
}, []);
|
|
|
|
// renders
|
|
return (
|
|
<BottomSheetModalProvider>
|
|
<View style={styles.container}>
|
|
<Button
|
|
onPress={handlePresentModalPress}
|
|
title="Present Modal"
|
|
color="black"
|
|
/>
|
|
<BottomSheetModal
|
|
ref={bottomSheetModalRef}
|
|
index={1}
|
|
snapPoints={snapPoints}
|
|
onChange={handleSheetChanges}
|
|
>
|
|
<View style={styles.contentContainer}>
|
|
<Text>Awesome 🎉</Text>
|
|
</View>
|
|
</BottomSheetModal>
|
|
</View>
|
|
</BottomSheetModalProvider>
|
|
);
|
|
};
|
|
|
|
const styles = StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
padding: 24,
|
|
justifyContent: 'center',
|
|
backgroundColor: 'grey',
|
|
},
|
|
contentContainer: {
|
|
flex: 1,
|
|
alignItems: 'center',
|
|
},
|
|
});
|
|
|
|
export default App;
|
|
```
|