์๋ ํ์ธ์ Foma ์ ๋๋ค!
์์ฆ React Native์ modal์ ๋ํ ์ผํ๊ฒ ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค.
๋ฐ๋ก ์์ํ ๊ฒ์~!
Modal์ด๋?
Modal์ ์ฌ์ ์ ์๋ฏธ๊ฐ ๊ถ๊ธํด์ ์ฐพ์ ๋ดค๋๋ ์๋ฏธ๋ฅผ ์ ์ ์๋.. ๋ป์ด ๋์ค๋๋ผ๊ตฌ์.
๊ทธ๋์ ๊ตฌ๊ธ๋ง์ ํตํด์ ๋ ์์ธํ ์ฐพ์๋ดค๋๋ ์ด ๋ถ์ด ์ ์ ๋ฆฌ๋ฅผ ํด๋์ผ์ จ๋๋ผ๊ตฌ์.
๊ฐ๋จํ ๋งํด ๋๋ฆฌ๋ฉด modal์ mode + al ์ด๊ณ ๋ฐ๋๋ง์ modeless ์ ๋๋ค.
์ฆ, modal์ ์ด๋ ํ ํ์(mode)์ผ๋ก ๋ ํ๋ฉด์ ์๋ฏธํ๋ฉฐ ์ฝ๊ฒ ์ดํดํ๋ ค๋ฉด Dialog๋ ํ์ ์ฐฝ์ ๋์ฐ๋ ํ๋ฉด์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
Modal Component
Modal์ React Native ์์ฒด์์ ์ปดํฌ๋ํธ๋ก ์ ๊ณตํ๊ณ ์์ต๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ด Modal๊ณผ ์ฌ๋ฌ Props๋ก ์ปค์คํ ํ ์ ์๋๋ฐ์.
<Modal visible={true} transparent={true} ... />
์ง๊ธ๋ถํฐ ํ๋ ํ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
animationType
์๋์ ๊ฐ์ด ์ํ๋ ์ ๋๋ฉ์ด์ ํ์ ์ ์ ํ ์ ์์ต๋๋ค.
<Modal animationType={"fade"} />
๋ชจ๋ฌ ํ๋ฉด์ ๋์ธ ๋ ์ด๋ค ์ ๋๋ฉ์ด์ ๋ฐฉ์์ผ๋ก ๋์ธ๊ฑด์ง๋ฅผ ๊ฒฐ์ ํ๋ ์์ฑ์ธ๋ฐ์.
none, fade, slide ์ด๋ ๊ฒ ์ด 3๊ฐ์ง๊ฐ ์์ต๋๋ค.
์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋๋ก none, fade, slide ์ ๋๋ค.
onDismiss
๋ชจ๋ฌ ํ๋ฉด์ด ๊บผ์ก์ ๋ ์ด๋ค ๋์์ ํ ์ ์๋๋ก ๋์์ฃผ๋ ์์ฑ์ ๋๋ค.
์๋์ ๊ฐ์ด ๋์ํ function์ ์์ฑํด ์ฃผ๋ฉด ๋ฉ๋๋ค.
<Modal transparent={false}/>
๋ชจ๋ฌ ํ๋ฉด์ ๋ซ์ ํ์ alert๊ฐ ๋จ๊ฒ ๋ฉ๋๋ค.
onShow
๋ชจ๋ฌ ํ๋ฉด์ด ์ผ์ก์ ๋ ์ด๋ค ๋์์ ํ ์ ์๋๋ก ๋์์ฃผ๋ ์์ฑ์ ๋๋ค.
์๋์ ๊ฐ์ด ๋์ํ function์ ์์ฑํด ์ฃผ๋ฉด ๋ฉ๋๋ค.
<Modal onShow={() => alert("Show")}/>
๋ชจ๋ฌ ํ๋ฉด์ด ๋จ๋ฉด ์๋์ ๊ฐ์ด alert๊ฐ ๋จ๊ฒ ๋ฉ๋๋ค.
visible
๋ง ๊ทธ๋๋ก ๋ชจ๋ฌ ํ๋ฉด์ ๋ณด์ด๊ฒ ํ ๊ฒ์ธ์ง ์จ๊ธธ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์์ฑ์ ๋๋ค.
visible์ false๋ก ํ๋ฉด ๋ชจ๋ฌ ํ๋ฉด์ด ๋ณด์ด์ง ์๊ณ , true๋ก ํ๋ฉด ๋ชจ๋ฌ ํ๋ฉด์ด ๋จ๊ฒ ๋ฉ๋๋ค.
Open์ ๋๋ ์ ๋ ๋ชจ๋ฌ ํ๋ฉด์ด ๋จ๋๋ก ์ค์ ํด ๋์๋ visible์ด false๋ฉด ๋ชจ๋ฌ ํ๋ฉด์ด ๋์์ง์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
transparent
<Modal transparent={false}/>
๋ชจ๋ฌ ํ๋ฉด์ ํฌ๋ช ํ๊ฒ ํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์์ฑ์ ๋๋ค.
์๋ ํ๋ฉด์์ ์ผ์ชฝ์ด false๋ก ํ์์ ๋, true๋ก ํ์์ ๋ ๋ชจ์ต์ ๋๋ค.
presentationStyle
๋ชจ๋ฌ ํ๋ฉด์ ๋ํ๋ผ ์คํ์ผ์ ์ ํ๋ ์์ฑ์ ๋๋ค.
<Modal presentationStyle={"fullScreen"}/>
fullScreen, overFullScreen, pageSheet, formSheet ์ด๋ ๊ฒ ์ด 4๊ฐ์ง๊ฐ ์์ต๋๋ค.
์ผ์ชฝ์ด fullScreen, overFullScreen ์ค๋ฅธ์ชฝ์ด pageSheet, formSheet ํ๋ฉด์ ๋๋ค.
fullScreen์ transparent๋ฅผ ์ง์ํ์ง ์๊ณ ๋ง์ฝ ํฌ๋ช ํ ์ ์ฒด ํ๋ฉด์ ์ํ๋ค๋ฉด overFullScreen์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
pageSheet๊ณผ formSheet์ ์ฐจ์ด์ ์ ํฐ ํ๋ฉด์์ ๋ํ๋๋๋ฐ, ์ผ์ชฝ์ด pageSheet, ์ค๋ฅธ์ชฝ์ด formSheet ์ ๋๋ค.
๋๊ธ