Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- web view
- 상속 관계 매핑
- 티스토리챌린지
- 휴대폰 기기
- Navigation
- Project Bee
- 경우의 수
- 비트마스킹
- 이영직
- 해외 대외활동
- 백준 1992
- service 테스트
- 원복
- BFS
- 창의충전소
- 완전탐색
- ReactNative
- react
- 노마드코더
- 폴더구조
- 구현
- 자료구조
- bfs dfs
- FlatList
- springboot
- React Native
- React Natvive
- multipart upload
- 오블완
- 버튼 활성화
Archives
- Today
- Total
유미의 기록들
[React Native -14] 다음 주소 검색 API 이용하기 본문
728x90
반응형
진행하고 있는 프로젝트에서 상품을 주문을 할 때 주소 검색 API를 사용할 일이 생겼다
1. 행정안전부 도로명 주소 API
2. 다음 주소 API
도로명개발자 센터에서 제공하는 API가 있지만 실제로 다음 주소가 훨씬 많이 쓰이며 key 발급도 필요 없고 사용법도 매우 편리하다
구글링을 하던 중, 대부분의 사람들이 react-daum-postcode 라이브러리를 사용한다는 것을 알게되었다
✅ 다음 postcode 라이브러리 설치
npm install @actbase/react-daum-postcode
✅ WebView 라이브러리 설치
npm install react-native-webview
https://github.com/actbase/react-daum-postcode
주소 검색 API를 사용할 페이지에 import 해준다
import Postcode from '@actbase/react-daum-postcode';
<Postcode
style={{ width: '100%', height: '100%' }}
jsOptions={{ animation: true }}
onSelected={data => alert(JSON.stringify(data))}
/>
onSelected : 결과값을 클릭할 때 실행되는 함수
* alert 창과 console에 JSON 데이터를 가져오는 것을 볼 수 있다
필요한 데이터값만 추출해서 navigate로 params을 보내면 된다
SearchAddress.js
import React, { Component } from 'react';
import Postcode from '@actbase/react-daum-postcode';
class SearchAddress extends Component {
constructor(props) {
super(props);
}
getAddressData=(data)=>{
let defaultAddress='';
if(data.buildingName==='')
{
defaultAddress='';
}
else if(data.buildingName==='N')
{
defaultAddress="("+data.apartment+")";
}
else{
defaultAddress="("+data.buildingName+")";
}
this.props.navigation.navigate('Drawers',{screen:'Deliver', params:{zonecode:data.zonecode, address:data.address, defaultAddress:defaultAddress}});
}
render() {
return (
<Postcode
style={{ width: '100%', height: '100%' }}
jsOptions={{ animation: true }}
onSelected={(data)=>this.getAddressData(data)}
/>
)
}
}
export default SearchAddress;
Address.js
<View style={styles.number_text}>
<Text style={styles.text}>{this.props.route.params.zonecode}</Text>
</View>
<TouchableOpacity activeOpacity={0.8} style={styles.btn} onPress={()=>this.props.navigation.push('Stack',{screen:'DeliverView'})}>
<Text style={styles.btn_text}>우편번호 찾기</Text>
</TouchableOpacity>
<View style={styles.address_text}>
<Text style={styles.text}>{this.props.route.params.address+' '+this.props.route.params.defaultAddress}</Text>
</View>
<TextInput style={template.textInput}
placeholder="상세 주소를 입력하세요"/>
결과물
정말 간단하게 구현할 수 있는 것을 알 수 있다 😁
728x90
반응형
'MDLAB 기록 > 차량부품거래애플리케이션' 카테고리의 다른 글
[React Native -16] 라디오 버튼 구현하기 (0) | 2022.12.04 |
---|---|
[React Native -15] 행정안전부 주소 API 사용하여 직접 구현해보기 (0) | 2022.12.01 |
[React Native -13] Web View (0) | 2022.11.24 |
[React Native -12] 사진 개수 제한 (0) | 2022.11.24 |
[React Native -11] Drawer Navigation (0) | 2022.11.23 |
Comments