import React, { Component } from 'react'
import { Button, Modal, Text, TextInput, View } from 'react-native'
import data from '@bang88/china_city_data'
import {Picker} from '@react-native-community/picker'
export default class App extends Component {
state={address:'',visible:true}
_addressChange=(p,c,d,dv)=>{
this.setState({address:p,visible:false})
}
render(){
return <View>
<TextInput placeholder="请输入地址" value={this.state.address}/>
<Button onPress={()=>this.setState({visible:true})} title="输入"/>
<Modal visible={this.state.visible} transparent={true}>
<View style={{flex:1,justifyContent:"center",alignItems:'center'}}>
<View style={{width:300,height:300,backgroundColor:'antiquewhite'}}>
<District onValueChange={this._addressChange}/>
</View>
</View>
</Modal>
</View>
}
}
class District extends Component{
state={province:data[0],city:data[0].children[0],district:data[0].children[0].children[0]}
_confirm=()=>{
this.props.onValueChange(this.state.province.label,this.state.city.label,this.state.district.label,this.state.district.value)
}
_proChnage=pro=>{
this.setState({province:pro,city:pro.children[0],district:pro.children[0].children[0]})
}
_cityChange=city=>{
this.setState({city,district:city.children[0]})
}
_districtChange=district=>{
this.setState({district})
}
render() {
return (
<View>
<Text>{this.state.province.label}---{this.state.city.label}--{this.state.district.label}</Text>
<Button title="确认" onPress={this._confirm}/>
<Picker mode="dropdown" selectedValue={this.state.province} onValueChange={this._proChnage}>
{data.map((pro,index)=>{
return <Picker.Item key={pro.value} label={pro.label} value={pro}/>
})}
</Picker>
<Picker selectedValue={this.state.city} onValueChange={this._cityChange}>
{this.state.province.children.map(city=><Picker.Item key={city.value} label={city.label} value={city}/>)}
</Picker>
<Picker selectedValue={this.state.district} onValueChange={this._districtChange}>
{this.state.city.children.map(district=><Picker.Item key={district.value} label={district.label} value={district}/>)}
</Picker>
</View>
)
}
}
使用Picker组件完成的自制地区选择组件
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 先看效果图 引入css 自定义组件样式,可根据自己需要自行改变 引入js 接下来实例化组件 源码下载 加我微信公众...
- 用框架做项目可以事半功倍,它封装好的各种功能免去你很大部分的工作。taro+taroui可以很好的实现开发一次,多...
- 想学好英语,让它为你的职场技能加分?但是外教课买了,却一直没有学!想拥有健康的身体、完美的身材,但是办了健身卡,却...
- 今天青石的票圈出镜率最高的,莫过于张艺谋的新片终于定档了。 一张满溢着水墨风的海报一次次的出现在票圈里,也就是老谋...