react-native-select-multiple
Một FlatList có thể tùy chỉnh cho phép bạn chọn nhiều hàng cùng một lúc.
Cài Đặt
npm install react-native-select-multiple
Sử Dụng
import React, { Component } from 'react'
import { View } from 'react-native'
import SelectMultiple from 'react-native-select-multiple'
const fruits = ['Apples', 'Oranges', 'Pears']
// --- OR ---
// const fruits = [
// { label: 'Apples', value: 'appls' },
// { label: 'Oranges', value: 'orngs' },
// { label: 'Pears', value: 'pears' }
// ]
class App extends Component {
state = { selectedFruits: [] }
onSelectionsChange = (selectedFruits) => {
// selectedFruits is array of { label, value }
this.setState({ selectedFruits })
}
render () {
return (
<View>
<SelectMultiple
items={fruits}
selectedItems={this.state.selectedFruits}
onSelectionsChange={this.onSelectionsChange} />
</View>
)
}
}
export default App
Tùy chỉnh nhãn
import React, { Component } from 'react'
import { View, Text, Image } from 'react-native'
import SelectMultiple from 'react-native-select-multiple'
const fruits = ['Apples', 'Oranges', 'Pears']
// --- OR ---
// const fruits = [
// { label: 'Apples', value: 'appls' },
// { label: 'Oranges', value: 'orngs' },
// { label: 'Pears', value: 'pears' }
// ]
const renderLabel = (label, style) => {
return (
<View style={{flexDirection: 'row', alignItems: 'center'}}>
<Image style={{width: 42, height: 42}} source={{uri: 'https://dummyimage.com/100x100/52c25a/fff&text=S'}} />
<View style={{marginLeft: 10}}>
<Text style={style}>{label}</Text>
</View>
</View>
)
}
class App extends Component {
state = { selectedFruits: [] }
onSelectionsChange = (selectedFruits) => {
// selectedFruits is array of { label, value }
this.setState({ selectedFruits })
}
render () {
return (
<View>
<SelectMultiple
items={fruits}
renderLabel={renderLabel}
selectedItems={this.state.selectedFruits}
onSelectionsChange={this.onSelectionsChange} />
</View>
)
}
}
Thuộc Tính
Thuộc Tính | Mặc Định | Kiểu | Mô Tả |
---|---|---|---|
items | – | mảng |
Tất cả các hạng mục có sẵn trong danh sách (mảng string hoặc { label, value } ) |
selectedItems | [] |
mảng |
Các hạng mục hiện tại đã chọn (mảng string hoặc { label, value } ) |
onSelectionsChange | – | hàm |
Hàm gọi lại khi người dùng chọn hoặc bỏ chọn một hạng mục, truyền (selections, item) |
keyExtractor | index |
hàm |
keyExtractor cho FlatList |
checkboxSource | hình ảnh | đối tượng |
Image source cho ô kiểm (chưa được chọn). |
selectedCheckboxSource | hình ảnh | đối tượng |
Image source cho ô kiểm (đã chọn). |
flatListProps | {} | đối tượng |
Các thuộc tính bổ sung cho danh sách phẳng |
style | kiểu mặc định | đối tượng |
Style cho bộ chứa FlatList . |
rowStyle | kiểu mặc định | đối tượng |
Style cho bộ chứa hàng. |
checkboxStyle | kiểu mặc định | đối tượng |
Style cho hình ảnh ô kiểm. |
labelStyle | kiểu mặc định | đối tượng |
Style cho nhãn văn bản. |
selectedRowStyle | kiểu mặc định | đối tượng |
Style cho bộ chứa hàng khi đã chọn. |
selectedCheckboxStyle | kiểu mặc định | đối tượng |
Style cho hình ảnh ô kiểm khi đã chọn. |
selectedLabelStyle | kiểu mặc định | đối tượng |
Style cho nhãn văn bản khi đã chọn. |
renderLabel | null | hàm |
Hàm để hiển thị nhãn. |
maxSelect | null | số nguyên |
Số lượng tối đa các hạng mục đã chọn |
Đóng Góp
Hãy tự do tham gia! Open an issue hoặc gửi PR.
Chi tiết tải về:
Tác giả: tableflip
Nguồn: https://github.com/tableflip/react-native-select-multiple
Giấy phép: ISC license