最基礎的一坨組件,目前在RN中均不包括,以下代碼目前可以在RN:0.65.1上使用
1. 單選
安裝:
yarn add react-native-radio-buttons-group
代碼:
import React, { useState } from 'react';
import RadioGroup from 'react-native-radio-buttons-group';
const radioButtonsData = [{
id: 1, //主鍵是必須有的
label: '男',
value: 'male'
}, {
id: 2,
label: '女',
value: 'female',
selected: true
},{
id: 3,
label: '其它',
value: 'other',
}]
export default function App() {
const [radioButtons, setRadioButtons] = useState(radioButtonsData)
function onPressRadioButton(radioButtonsArray) {
console.log(radioButtonsArray)
setRadioButtons(radioButtonsArray);
}
return (
<RadioGroup
radioButtons={radioButtons}
onPress={onPressRadioButton}
/>
);
}
2. 復選:
安裝:
yarn add @react-native-community/checkbox
代碼:
import React, { Component } from 'react'
import { Text, View } from 'react-native'
import CheckBox from '@react-native-community/checkbox';
export default class App extends Component {
state={accept:false}
render() {
return (
<View style={{flexDirection:'row',alignItems:'center'}}>
<CheckBox
tintColors={{true:'red',false:'green'}}
disabled={false}
value={this.state.accept}
onValueChange={v => {
this.setState({accept:v})
}}/>
<Text>您是否接受協(xié)議</Text>
</View>
)
}
}
3. 下拉選擇:
(1) 彈出式
安裝:
npm i react-native-modal-dropdown -save
代碼:
import React, { Component } from 'react'
import { Text, View } from 'react-native'
import ModalDropdown from 'react-native-modal-dropdown';
export default class App6 extends Component {
_majorChangeHandler=(index,item)=>{
console.log(index,item)
}
render() {
let majors=["計算機科學","軟件工程","移動云計算"]
return (
<View >
<ModalDropdown onSelect={this._majorChangeHandler}
defaultValue="請選擇您的專業(yè)..."
dropdownTextStyle={{fontSize:22,color:'blue'}}
textStyle={{fontSize:30,color:'red'}}
dropdownTextHighlightStyle={{backgroundColor:"red",color:'yellow'}}
options={majors}/>
<Text>您的專業(yè)是:</Text>
</View>
)
}
}
- 直接下拉式:
安裝:
yarn add eact-native-dropdown-picker
代碼:
import DropDownPicker from 'react-native-dropdown-picker';
import React, { useState } from 'react';
import { View,Text } from 'react-native'
export default function App() {
const [open, setOpen] = useState(false);
const [value, setValue] = useState(null);
const [items, setItems] = useState([
{ label: '蘋果', value: 'apple' },
{ label: '香蕉', value: 'banana' }
]);
return (
<View style={{flex:1,justifyContent:'space-around'}}>
<DropDownPicker
open={open}
value={value}
items={items}
setOpen={setOpen}
setValue={setValue}
setItems={setItems}
/>
<Text>您選擇的是:{value}</Text>
</View>
);
}