react-native-custom-actionsheet
Mô-đun ActionSheet đa nền tảng. Mô-đun này thực hiện một ActionSheet tùy chỉnh và cung cấp cách vẽ nó trên các nền tảng khác nhau (iOS và Android). Thực ra, để duy trì hiệu ứng tốt nhất, nó vẫn sử dụng ActionSheetIOS trên iOS. Đối với ActionSheet tùy chỉnh, nó sử dụng các kiểu khác nhau tùy thuộc vào nền tảng.
Dự án này được dựa trên react-native-actionsheet bởi beefe.
Cài đặt
npm i -S react-native-custom-actionsheet
Sử dụng ActionSheetCustom
Bạn có thể tùy chỉnh nút ActionSheet
import React, { Component } from 'react'
import { View, Text, StyleSheet } from 'react-native'
import { ActionSheetCustom as ActionSheet } from 'react-native-custom-actionsheet'
const CANCEL_INDEX = 0
const DESTRUCTIVE_INDEX = 4
const options = [
'Cancel',
'Apple',
{
component: <Text style={{ color: 'orange', fontSize: 24 }}>Banana</Text>,
height: 80,
},
'Watermelon',
{
component: <Text style={{ color: 'blueviolet' }}>Apple</Text>,
height: 40,
},
]
const title = <Text style={{ color: 'crimson', fontSize: 18 }}>Which one do you like?</Text>
class CustomExample extends Component {
state = {
selected: 1,
}
showActionSheet = () => this.actionSheet.show()
getActionSheetRef = ref => (this.actionSheet = ref)
handlePress = index => this.setState({ selected: index })
render() {
const { selected } = this.state
const selectedText = options[selected].component || options[selected]
return (
<View style={styles.wrapper}>
<Text style={{ marginBottom: 20 }}>
I like {selectedText}
</Text>
<Text style={styles.button} onPress={this.showActionSheet}>
Custom ActionSheet
</Text>
<ActionSheet
ref={this.getActionSheetRef}
title={title}
message="custom message custom message custom message custom message custom message custom message "
options={options}
cancelButtonIndex={CANCEL_INDEX}
destructiveButtonIndex={DESTRUCTIVE_INDEX}
onPress={this.handlePress}
/>
</View>
)
}
}
Sử dụng
import React from 'react'
import { View, Text, StyleSheet } from 'react-native'
import ActionSheet from 'react-native-custom-actionsheet'
const CANCEL_INDEX = 0
const DESTRUCTIVE_INDEX = 4
const options = [ 'Cancel', 'Apple', 'Banana', 'Watermelon', 'Durian' ]
const title = 'Which one do you like?'
class DefaultExample extends React.Component {
state = {
selected: '',
}
showActionSheet = () => this.actionSheet.show()
getActionSheetRef = ref => (this.actionSheet = ref)
handlePress = (index) => this.setState({ selected: index })
render() {
return (
<View style={styles.wrapper}>
<Text style={{marginBottom: 20}}>
I like {options[this.state.selected]}
</Text>
<Text style={styles.button} onPress={this.showActionSheet}>
Default ActionSheet
</Text>
<ActionSheet
ref={this.getActionSheetRef}
title={title}
message="custom message custom message custom message custom message custom message custom message "
options={options}
cancelButtonIndex={CANCEL_INDEX}
destructiveButtonIndex={DESTRUCTIVE_INDEX}
onPress={this.handlePress}
/>
</View>
)
}
}
Thuộc tính
Tên thuộc tính | Mô tả | Loại | Mặc định |
---|---|---|---|
title | PropTypes.string hoặc PropTypes.element | ||
message | PropTypes.string hoặc PropTypes.element | ||
options | PropTypes.arrayOf([ PropTypes.string, PropTypes.shape({ component: PropTypes.element, height: PropTypes.number }), ]) | ||
tintColor | PropTypes.string | ||
cancelButtonIndex | PropTypes.number | ||
destructiveButtonIndex | PropTypes.number | ||
onPress | PropTypes.func | (index) => {} | |
styles | Đối tượng StyleSheet với một số khóa từ ./lib/styles |
Chi tiết tải về:
Tác giả: valerybugakov
Mã nguồn: https://github.com/valerybugakov/react-native-custom-actionsheet
Giấy phép: MIT license
Cảm ơn bạn!