ํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๊ฐ์ฅ ๋ง์ด ๋๋ผ๋ ๊ฒ์
์ฝ๋๋ณด๋ค ์ค์ํ ๊ฑด โํ์ ๊ฐ์ ๊ท์น ๊ณต์ โ๋ผ๋ ์ฌ์ค์ด๋ค.
์ด๋ฒ์ ๋๋ โ๋ฐ๊ฒฝ ๊ธฐ๋ฐ ๊ฒ์๊ธ ํํฐ๋งโ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์
๋ค๋ฅธ ํ์์ด ๋ง๋ Filter ์ปดํฌ๋ํธ์ ๋ฏธ๋ฌํ ๋ถ์ผ์น ๋๋ฌธ์
์์์น ๋ชปํ ๋ฒ๊ทธ๋ฅผ ๊ฒช์๋ค.
๊ทธ ๊ณผ์ ์ ๊ธฐ๋กํด๋ณธ๋ค.
๋๋ FitList ํ์ด์ง์์ ๋ค์ ์กฐ๊ฑด์ ๊ตฌํํ๋ค.
๊ทธ๋ฐ๋ฐ ์ค์ ๋ก ํ ์คํธํด๋ณด๋,
์/๋ = ๋ถ์ฐ๊ด์ญ์
์๊ตฐ๊ตฌ = (์ ํ ์ ํจ)
์ด ๊ฒฝ์ฐ ๋ถ์ฐ๊ด์ญ์ ์ ์ฒด ๊ฒ์๊ธ์ด ๋์์ผ ํ๋๋ฐ,
ํํฐ๋ง๋ ๋ชฉ๋ก์ 0๊ฐ์๋ค.
์ฝ์์๋ ์ด๋ฐ ๊ฐ์ด ์ฐํ๋ค.
filter.sido: "๋ถ์ฐ๊ด์ญ์"
filter.sigungu: ""
์ฌ๊ธฐ์ ๋๋ ๋ฌธ์ ์ ํต์ฌ์ ๋ฐ๊ฒฌํ๋ค.
Filter ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ ํ์์,
์/๋ ๋ณ๊ฒฝ ์ ์๊ตฐ๊ตฌ ํํฐ๋ฅผ ์ด๊ธฐํํ๋ ๋ก์ง์ ์ด๋ ๊ฒ ๋ง๋ค์ด๋จ๋ค.
onChange({ ...value, sido: next, sigungu: '' })
์ฆ,
"์ยท๊ตฐยท๊ตฌ ์ ํ"์ด ์๋๋ผ''์ด์๊ณ , ๋๋ ์ด ์ฌ์ค์ ๋ชจ๋ฅด๊ณ ์ด๋ ๊ฒ ํด์ํด๋ฒ๋ฆฐ ๊ฒ์ด๋ค:
const hasSigunguFilter =
filter.sigungu !== "์ยท๊ตฐยท๊ตฌ ์ ํ" && filter.sigungu !== "์ ์ฒด"
์ฌ๊ธฐ์ filter.sigungu = '' ์ด ๋ค์ด์ค๋ฉด ๊ฒฐ๊ณผ๋?
'' !== "์ยท๊ตฐยท๊ตฌ ์ ํ" โ true
'' !== "์ ์ฒด" โ true
=> hasSigunguFilter = true
์ฆ,
์๊ตฐ๊ตฌ๋ฅผ ์ ํํ์ง ์์์์๋
์๊ตฐ๊ตฌ ํํฐ๊ฐ ์ผ์ง ๊ฒ์ผ๋ก ๋ก์ง์ด ์คํดํ๋ค.
๊ทธ๋ฆฌ๊ณ ํํฐ๋ ์ด๋ ๊ฒ ์ ์ฉ๋๋ค:
item.sigungu === filter.sigungu(๋น ๋ฌธ์์ด)
๋น์ฐํ '๋จ๊ตฌ' === '' ๊ฐ์ ์กฐ๊ฑด์ ๋ง์กฑํ ๊ฒ์๊ธ์ ์๋ค.
๊ทธ๋์ ๋ถ์ฐ๊ด์ญ์๋ง ์ ํํด๋ ์๋ฌด ๊ธ๋ ๋์ค์ง ์์๋ ๊ฒ.
๋๋ ์๊ตฐ๊ตฌ ํํฐ ์กฐ๊ฑด์ ์ด๋ ๊ฒ ์์ ํ๋ค.
const hasSigunguFilter =
!!filter.sigungu &&
filter.sigungu !== "์ยท๊ตฐยท๊ตฌ ์ ํ" &&
filter.sigungu !== "์ ์ฒด"
์ด์ filter.sigungu === ''์ด๋ฉด:
!!'' โ false
=> hasSigunguFilter = false // ํํฐ ๊บผ์ง
์ฆ,
์/๋ = ๋ถ์ฐ๊ด์ญ์๋ง ์ ํํด๋
โ ๋ถ์ฐ๊ด์ญ์ ์ ์ฒด ๊ธ์ด ์์ฐ์ค๋ฝ๊ฒ ๋ ๋๋ง๋๋ค.
์ด ๋ฌธ์ ๋ ๊ธฐ์ ์ ์ผ๋ก ์ด๋ ต์ง ์์๋ค.
ํ๋ฒ์ฌ์ธ ๊ฑฐ๋ฆฌ ๊ณ์ฐ๋ ์๋๊ณ , ์ขํ ์ฐ์ฐ๋ ์๋์๋ค.
๋ฌธ์ ์ ๋ณธ์ง์ ํ ๊ฐ์ โ๊ฐ ๊ท์น(value contract)โ์ด ๊ณต์ ๋์ง ์์๋ค๋ ๊ฒ.
์๋ฅผ ๋ค์ด:
| ์๋ฏธ | Filter๊ฐ ๋๊ธด ๊ฐ | FitList๊ฐ ๊ธฐ๋ํ ๊ฐ |
|---|---|---|
| ์๊ตฐ๊ตฌ ์ ํ ์ ํจ | "" | "์ยท๊ตฐยท๊ตฌ ์ ํ" |
| โ์ ์ฒดโ ์ ํ | ์์(๋ฏธ๊ตฌํ) | "์ ์ฒด" |
์๋ก๊ฐ ๋ค๋ฅธ ๊ท์น์ผ๋ก ๊ฐ๋ฐํ๊ธฐ ๋๋ฌธ์,
๊ฒ์ผ๋ก ๋ณด๊ธฐ์ ๋ฉ์ฉกํ ๊ธฐ๋ฅ์ด์ง๋ง ๋ด๋ถ์์ ์ถฉ๋์ด ๋ฐ์ํ ๊ฒ์ด๋ค.
์์ผ๋ก ํ์์ ๊ธฐ๋ฅ์ ๋๋ ๊ฐ๋ฐํ ๋๋ ๋ค์์ ๊ผญ ๋จผ์ ์ ๋ฆฌํด์ผ ํ๋ค.
null, "", "์ ํ"โฆtype SigunguValue = '' | '์ ์ฒด' | '์ยท๊ตฐยท๊ตฌ ์ ํ' | string
Notion์ด๋ผ๋ ์ง confluence๋ผ๋ ์ง
๋ช ๊ธ์์ด๋ฉด ๋๋ค.
โ์๊ตฐ๊ตฌ ๋ฏธ์ ํ ์ ''์ ๋ณด๋ธ๋ค.โ
์ด ํ ๋ฌธ์ฅ๋ง ์์์ด๋
์ด๋ฒ ์ดํ์ง๋ฆฌ ํธ๋ฌ๋ธ์ํ ์ 5๋ถ ๋ง์ ํด๊ฒฐ๋์ ๊ฒ์ด๋ค.
์ด๋ฒ ๊ฒฝํ์ ์์ ๋ฒ๊ทธ์ฒ๋ผ ๋ณด์์ง๋ง
๊ฐ๋ฐ ํ์ ์์ ์ ๋ง ์ค์ํ ๋ณธ์ง์ ๊นจ๋ซ๊ฒ ํด์คฌ๋ค.
โ์ฝ๋๋ฅผ ์ ์ง๋ ๊ฒ๋ณด๋ค,
๊ท์น์ ๊ณต์ ํ๋ ๊ฒ์ด ๋ ์ค์ํ๋ค.โ
์์ผ๋ก ํ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋
์ด ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๋์ฑ ๋จ๋จํ ํ์ ์ ๋ง๋ค์ด๊ฐ ๊ฒ์ด๋ค.