此组件相当于PC的单选下拉框,但更加炫,适应手机的触摸交互形式。
parent{
flex:1;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: #e9ea00;
}
title{
margin-top: 10;
height: 40;
}
text{
font-size: 18;
color:#660099;
}
主程序如下:
/**
* picker 司徒正美
*/
'use strict';
var React = require('react-native');
var styles = require("./style")
var {
PickerIOS,
Text,
View,
AppRegistry,
Dimensions
} = React;
var PickerItemIOS = PickerIOS.Item;
var array = [
{label: "苹果",value:"apple"},
{label:"梨",value:"pear"},
{label:"香蕉",value:"banana"},
{label:"桃", value:"peach"},
{label:"波萝", value:"pineapple"},
{label:"葡萄", value:"grape"},
]
var PickerExample = React.createClass({
getInitialState: function() {
return {
selected: "pear"
};
},
render: function() {
return (
<View style={styles.parent}>
<Text style={styles.tilte}>选择你喜欢的水果:</Text>
<PickerIOS
style={{width:Dimensions.get('window').width}}
selectedValue={this.state.selected}
onValueChange={(value) => this.setState({selected: value})}>
{array.map((obj) => (
<PickerItemIOS
key={obj.value+obj.label}
value={obj.value}
label={obj.label}
/>
))}
</PickerIOS>
<Text style={styles.text}>你已经选择:{this.state.selected}</Text>
</View>
);
},
});
AppRegistry.registerComponent('AwesomeProject', () => PickerExample);
这里用到一个Dimensions模块,用于获取手机屏幕的宽