npm: react-daum-postcode
Daum 우편번호 서비스
1. npm i react-daum-postcode 설치
2. import DaumPostcodeEmbed
3. 아래 참고
//Signup.jsx 24-03-20
import { Link } from 'react-router-dom';
import SignupLogo from '/imgs/signupLogo.png'
import DaumPostcodeEmbed from 'react-daum-postcode';
import { useState } from 'react';
function Signup() {
const [address, setAddress] = useState({
address: "",
postcode: ""
})
// const [isModalOpen, setIsModalOpen] = useState(false)
const handleAddress = (data) => {
setAddress({
address: data.address,
postcode: data.zonecode
})
}
return (
<div className="main-layer">
<img src={SignupLogo} alt="회원가입로고" className="mt-20 " />
<p className="m-4 login-font">물건을 받을 주소를 입력해주세용</p>
<div className='flex flex-row items-center w-[330px] gap-5'>
{/* value 값을 통해 FindAddress에서 받아온 postcode를 할당 */}
<input type="text" placeholder='우편번호' className='w-[100px] h-[50px] border-[2.5px] rounded-[5px] p-3' value={address.postcode} onChange={(e) => setAddress(e.target.value)}/>
<button className="w-[100px] h-[30px] rounded bg-gray-400 text-white text-[15px]" onClick={handleAddress}>우편번호 찾기</button>
</div>
<div className="flex flex-row w-[330px] h-[50px] border-[2.5px] rounded-[5px] p-3">
{/* value 값을 통해 FindAddress에서 받아온 address를 할당 */}
<input type="text" placeholder="주소" className='w-full' value={address.address} onChange={(e) => setAddress(e.target.value)}/>
</div>
<div className="flex flex-row w-[330px] h-[50px] border-[2.5px] rounded-[5px] p-3">
<input type="text" placeholder="상세주소" className='w-full' />
</div>
<Link to={"/signup/favorite"}>
<button className="common-btn">다음</button>
</Link>
{<DaumPostcodeEmbed onComplete={handleAddress} autoClose />}
</div>
)
}
export default Signup;
받아오는 데이터 형식
address
:
"경북 구미시 진평동 553"
addressEnglish
:
"553, Jinpyeong-dong, Gumi-si, Gyeongsangbuk-do, Korea"
addressType
:
"J"
apartment
:
"N"
autoJibunAddress
:
""
autoJibunAddressEnglish
:
""
autoRoadAddress
:
""
autoRoadAddressEnglish
:
""
bcode
:
"4719012300"
bname
:
"진평동"
bname1
:
""
bname1English
:
""
bname2
:
"진평동"
bname2English
:
"Jinpyeong-dong"
bnameEnglish
:
"Jinpyeong-dong"
buildingCode
:
"4719012300105530000004621"
buildingName
:
""
hname
:
""
jibunAddress
:
"경북 구미시 진평동 553"
jibunAddressEnglish
:
"553, Jinpyeong-dong, Gumi-si, Gyeongsangbuk-do, Korea"
noSelected
:
"N"
postcode
:
""
postcode1
:
""
postcode2
:
""
postcodeSeq
:
""
query
:
"진평동 553"
roadAddress
:
"경북 구미시 진평2길 33-8"
roadAddressEnglish
:
"33-8, Jinpyeong 2-gil, Gumi-si, Gyeongsangbuk-do, Korea"
roadname
:
"진평2길"
roadnameCode
:
"4724860"
roadnameEnglish
:
"Jinpyeong 2-gil"
sido
:
"경북"
sidoEnglish
:
"Gyeongsangbuk-do"
sigungu
:
"구미시"
sigunguCode
:
"47190"
sigunguEnglish
:
"Gumi-si"
userLanguageType
:
"K"
userSelectedType
:
"R"
zonecode
:
"39397"