user-img
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก  49
thumbnail
์บ˜๋ฆฐ๋”Todo ํด๋ก ์ฝ”๋”ฉ - ๋‹ฌ๋ ฅ์— ์„ ํƒ๋œ ๋‚ ์งœ์˜ ํ•  ์ผ๋งŒ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ธฐ
1. ์„ ํƒ๋œ ๋‚ ์งœ๋งŒ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ธฐ (1) ๋กœ์ง (2) ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐฐ์—ด์˜ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ filter๋ฅผ ์ด์šฉ. fiter๋Š” ๋ฐฐ์—ด ์›์†Œ ํ•˜๋‚˜ํ•˜๋‚˜ ๋Œ€์ž…ํ•˜์—ฌ ํ•ด๋‹น ๋ช…๋ น๋ฌธ์— ๋Œ€ํ•˜์—ฌ ์ฐธ์ธ ์›์†Œ๋“ค๋กœ๋งŒ ์ƒˆ ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. (3) ์ถ”๊ฐ€์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜์—ฌ ์•Œ์•„๋‚ธ ๊ฒƒ JS ์˜ Array Filter์— ๋Œ€ํ•˜์—ฌ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ณต๋ถ€ Array์˜ ๋‚ด์žฅํ•จ์ˆ˜ Filter๋Š” ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์˜ ๊ฐ’๋“ค์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ ‘๊ทผํ•ด์„œ callbackFn({}์•ˆ์— ์ ํ˜€์žˆ๋Š” ํ•จ์ˆ˜)์— ๋„ฃ์–ด๋ณด๊ณ  ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ true์ธ ์›์†Œ๋“ค๋กœ๋งŒ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ํ•œ๋‹ค. **callback์˜ ์˜๋ฏธ : ๋‹ค๋ฅธ ์ฝ”๋“œ์— ์ธ์ˆ˜๋กœ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ฉ์–ด๋ฆฌ **callback ํ•จ์ˆ˜๋Š” : ๋‹ค๋ฅธ ์ฝ”๋“œ์— ์ธ์ˆ˜๋กœ ๋“ค์–ด๊ฐ„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜
2023.04.12
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
Toggle๋ฒ„ํŠผ, ๊พน ๋ˆ„๋ฅผ ์‹œ ์‚ญ์ œ, ์ถ”๊ฐ€ ๋ฒ„ํŠผ ๊ตฌํ˜„
1. Toggle๋ฒ„ํŠผ ๊ตฌํ˜„ (1) ๋กœ์ง ์„ค๊ณ„๋„ (2) ์ฝ”๋“œ๋ฆฌ๋ทฐ TodoList ์ž์ฒด๋ฅผ ๋ˆ„๋ฅผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์ „์ฒด๋ฅผ ๊ฐ์‹ธ๋˜ RootView๋ฅผ Pressable๋กœ ๋ฐ”๊พธ์–ด ์ฃผ์—ˆ๋‹ค. (3) ์ถ”๊ฐ€์ ์œผ๋กœ ์•Œ์•„๋‚ธ ์  a. onPress ์†์„ฑ ๋‚ด๋ถ€์— ํ•จ์ˆ˜๋ฅผ ์ ์„ ๋•Œ ํ‘œํ˜„ ใ„ฑ. ๋งŒ์•ฝ onPress์— ์ ํžˆ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋”ฐ๋กœ ์ „๋‹ฌ ์•ˆํ•˜๋Š” ๊ฒฝ์šฐ // ์…‹ ๋‹ค ๊ฐ™์€ ๊ฐ€๋Šฅํ•จ. onPress(ExFunc) onPress(() => Ex.Func()) onPress(() => {return Ex.func()}) // ์ด๊ฑด ํ‹€๋ฆฐ ๊ฒƒ. ์ต๋ช…ํ•จ์ˆ˜๋กœ ์ ์–ด์ฃผ๋ ค๋ฉด, ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ถ€๋ถ„๋„ ๋ฌด์กฐ๊ฑด ์ ์–ด์ค˜์•ผ ํ•œ๋‹ค. onPress(() => Ex.Func) ํ•˜์ง€๋งŒ ์ต๋ช… ํ•จ์ˆ˜ ํ˜•ํƒœ ()=> {} ๋กœ ์ ์–ด์ฃผ๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ..
2023.04.12
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
์บ˜๋ฆฐ๋”์— to do list ๋งŒ๋“ค๊ธฐ, ์ปดํฌ๋„ŒํŠธ ์ •๋ฆฌ
๋จผ์ € ์บ˜๋ฆฐ๋” ๋ฐ‘ ๋ถ€๋ถ„์— To do List๋ฅผ flatList๋กœ์„œ ๋„ฃ๋Š”๋‹ค. ์บ˜๋ฆฐ๋”์™€ to do List๊ฐ€ ๋”ฐ๋กœ Scroll ๋œ๋‹ค๋ฉด ๊ทธ๊ฒƒ๋„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถˆํŽธํ•จ์„ ์ค„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜๋‚˜์˜ FlatList์— ์บ˜๋ฆฐ๋”์™€ Scroll์ด ๊ฐ™์ด ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•œ๋‹ค. (1)๋”ฐ๋ผ์„œ ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“ค์—ˆ๋˜ ์บ˜๋ฆฐ๋” ๋กœ์ง์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋”ฐ๋กœ ๋นผ์„œ, toDoList FlatList์˜ ListHeaderComponent๋กœ ๋„ฃ์–ด์ค„ ๊ฒƒ์ด๋‹ค. (2) ๊ทธ๋ฆฌ๊ณ  ํ™”๋ฉด ๋’ค์— ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋„ ๋„ฃ์–ด์ค„ ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ํ™”๋ฉด๊ณผ View ๊ฐ€ ๊ฒน์น  ๋•Œ ๋ˆ„๊ฐ€ ์•ž์— ๋œฐ ๊ฒƒ์ธ์ง€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” CSS๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‘ ํƒœ๊ทธ๊ฐ„์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚˜๋ˆŒ ๊ฒƒ์ธ๋ฐ, position๊ณผ zindex๊ฐ€ ์“ฐ์ธ๋‹ค. (3) ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ‘์— todo๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ..
2023.04.11
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
ToDo์บ˜๋ฆฐ๋” ํด๋ก ์ฝ”๋”ฉ - Custom Hook์œผ๋กœ ์ •๋ฆฌ
์šฐ๋ฆฌ๋Š” ์บ˜๋ฆฐ๋” ๊ตฌํ˜„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ToDo List ๊ตฌํ˜„๋„ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์–‘์ชฝ ์ƒํƒœ๋ณ€์ˆ˜๋“ค์ด ์„ž์—ฌ ์ ํžˆ๋ฉด ๊ฐ€๋…์„ฑ์ด ํ˜„์ €ํžˆ ๋–จ์–ด์ง€๊ฒŒ ๋˜๊ณ  ์œ ์ง€๋ณด์ˆ˜์— ํฐ ์–ด๋ ค์›€์„ ๊ฒช์„ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“ค์—ˆ๋˜ ์บ˜๋ฆฐ๋”์˜ ์ƒํƒœ๋ณ€์ˆ˜ ๋ฐ ํ•„์š”ํ•œ ํ•จ์ˆ˜๋“ค์€ ๋”ฐ๋กœ useCalendar๋ผ๋Š” Custom ํ›…์— ๋„ฃ์–ด์„œ ์ •๋ฆฌํ•œ๋‹ค. App.js ์—์„œ ํ•„์š”ํ•œ ๊ฐ’๋“ค์€ useCalendar์˜ return ๊ฐ’์—์„œ ๋ฐ›์•„์˜จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ œ๋ถ€ํ„ฐ ๋งŒ๋“ค useTodoList๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ๋”ฐ๋กœ ์ปค์Šคํ…€ ํ›… ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๊ฑฐ๊ธฐ์— ํ•„์š”ํ•œ ์ƒํƒœ๋ณ€์ˆ˜๋“ค๊ณผ ํ•จ์ˆ˜๋“ค์„ ์ ๊ฒ ๋‹ค. 1. use-Calendar.js import dayjs from "dayjs"; import { useState } from "react"; export const useCalendar = (..
2023.04.08
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
์บ˜๋ฆฐ๋” ์•ฑ ํด๋ก ์ฝ”๋”ฉ -์ƒ๋‹จ ๋ฐ” ํ™”์‚ดํ‘œ ๋ฐ ๋‚ ์งœ ๋ˆŒ๋ €์„ ๋•Œ, ์›ํ•˜๋Š” ๋…„,์›”,์ผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ
1. ์ƒ๋‹จ๋ฐ”์˜ ๋‚ ์งœ ๋ˆ„๋ฅผ ์‹œ ์›ํ•˜๋Š” ๋…„์›”์ผ ์„ ํƒ ๋ฐ ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค๊ธฐ 2. ํ™”์‚ดํ‘œ ๋ˆ„๋ฅผ ์‹œ ์ €๋ฒˆ ๋‹ฌ, ๋‹ค์Œ๋‹ฌ๋กœ ์ด๋™ํ•˜๊ธฐ 3. ์Šค์Šค๋กœ ํ•ด๋ณด๊ธฐ ์Šค๋ฌด์Šคํ•˜๊ฒŒ ํ•จ. 16๋ถ„
2023.04.07
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
์บ˜๋ฆฐ๋” ํด๋ก ์ฝ”๋”ฉ ํŠน์ • ๋‚ ์งœ ๋ˆŒ๋ €์„ ๋•Œ, ๋‹ฌ๋ ฅ์ด ๋ฐ˜์‘์ด ์˜ค๋„๋ก ํ•˜๊ธฐ
1. ๊ฐœ์š”๋„ ์ƒํƒœ ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. ์ƒํƒœ ๋ณ€์ˆ˜๋Š” renderItem ์˜ on Press ์„ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋‚ ์งœ ๋ˆ„๋ฅผ ๋•Œ ๋งˆ๋‹ค ์ƒํƒœ ๋ณ€์ˆ˜๊ฐ€ ์ตœ์‹ ํ™” ๋˜๋„๋ก ์„ธํŒ…ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ธํŒ…๋œ ์ƒํƒœ๋ณ€์ˆ˜๋Š” ์ด 3๊ฐ€์ง€์—์„œ ์“ฐ์ธ๋‹ค. ๋จผ์ € ๋‹ฌ๋ ฅ์— ๋“ค์–ด๊ฐˆ dayjs ๋ณ€์ˆ˜๋“ค์„ ๋ฐฐ์—ด๋กœ ๋Œ๋ ค์ฃผ๋˜ utill.js์— ์ด์ œ now(ํ˜„์žฌ์‹œ๊ฐ„)์„ ์•ˆ ๋„ฃ๊ณ , ํ•ด๋‹น ์ƒํƒœ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ๋Š”๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ฌ๋ ฅ ๋‚ด ์ „์›”์ด๋‚˜ ๋‚ด์›”์˜ ๋‚ ์งœ๋ฅผ ํด๋ฆญ ํ–ˆ์„ ์‹œ ๊ทธ ๋‚ ์งœ์˜ ๋‹ฌ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ˆŒ๋Ÿฌ์ง„ ๋‚ ์งœ๊ฐ€ ์†ํ•œ ๋‹ฌ์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ฌ๋ ฅ์— ๋“ค์–ด๊ฐˆ ๊ฐ’์˜ ๋ฐฐ์—ด์„ ๋‹ค์‹œ ๋ฝ‘๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‘ ๋ฒˆ์งธ๋กœ renderItem์—์„œ ์“ฐ์ธ๋‹ค. onPress๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ƒํƒœ๋ณ€์ˆ˜๊ฐ€ ํ•ด๋‹น ๋‚ ์งœ๋กœ ์„ธํŒ…๋œ๋‹ค. isSelected๋ผ๋Š” ๋ณ€์ˆ˜์—์„œ ์ƒํƒœ ๋ณ€์ˆ˜๊ฐ€ ์ด์šฉ๋˜๋Š”๋ฐ..
2023.04.07
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
๋‹ฌ๋ ฅ ํด๋ก ์ฝ”๋”ฉ (3) ๋‹ฌ๋ ฅ ํ™”๋ฉด ๋งŒ๋“ค๊ธฐ
์ €๋ฒˆ์— ๋งŒ๋“ค์—ˆ๋˜ ๋‹ฌ๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ๋‹ฌ๋ ฅ ๋ชจ์–‘์œผ๋กœ ํ™”๋ฉด์— ๋„์šฐ๊ฒ ๋‹ค. ์œ„์— ์˜ค๋Š˜์˜ ๋‚ ์งœ 2022.11.24 ๋ถ€๋ถ„์€ ์•„์ง ๊ตฌํ˜„ ์•ˆํ•˜๊ณ , now๋ผ๋Š” ํ˜„์žฌ ์‹œ๊ฐ ๋ฐ›์•„์„œ ์ง„ํ–‰ ํ•˜๊ฒ ์Œ. 1. FlatList ๋ฅผ ๋งŒ๋“ค์–ด ํ™”๋ฉด ๋„์šฐ๊ธฐ data๋Š” ์ €๋ฒˆ์— ์šฐ๋ฆฌ๊ฐ€ util.js ์—์„œ ๋งŒ๋“ค์—ˆ๋˜ column์„ ์ด์šฉํ•œ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ˜„์žฌ "๋…„์›”์ผ ์‹œ๋ถ„์ดˆ"๋ฅผ ๋œปํ•˜๋Š” now๋ฅผ ๋„ฃ์—ˆ๋‹ค. ์‚ฌ์‹ค ์•ˆ ๋„ฃ์–ด์ค˜๋„ ๋˜์ง€๋งŒ, (why? dayjs()๋Š” ํ˜„์žฌ ๋…„์›”์ผ ์‹œ๋ถ„์ดˆ ์˜๋ฏธํ•˜๋Š”๋ฐ, ์ธ์ˆ˜๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ๋„˜์–ด์˜ค์ง€ ์•Š์œผ๋ฉด getCalendarColumns ์•ˆ์— ์žˆ๋Š” dayjs๋Š” ์ธ์ˆ˜๋ฅผ ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ๋ฐ›๊ฒŒ๋˜๊ธฐ ๋•Œ๋ฌธ) ์ผ๋‹จ ๋„ฃ์–ด์ค€๋‹ค. data์— colums๋ฅผ ๋„ฃ์œผ๋ฉด ์ด์ œ renderItem์—์„œ columns์˜ ๋ฐฐ์—ด ์›์†Œ๋ฅผ ์ฐจ๋ก€๋กœ ๋Œ๋ฉด์„œ ์–ด๋– ํ•œ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•œ..
2023.04.05
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
์บ˜๋ฆฐ๋” ์•ฑ ํด๋ก ์ฝ”๋”ฉ(2) - ๋‹ฌ๋ ฅ ๋‚ด๋ถ€ ๋‚ ์งœ ๋ฐ์ดํ„ฐ ๋งŒ๋“ค๊ธฐ
๋‹ฌ๋ ฅ ๋‚ด๋ถ€์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚ ์งœ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฒˆ 4์›”๋‹ฌ์˜ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. ์œ„์—์„œ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ๋‹ฌ๋ ฅ์—๋Š” ํ•ด๋‹น ์›”์˜ ๋‚ ์งœ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋นˆ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๋Š” ์ „์›”, ๋‚ด์›”์˜ ๋‚ ์งœ๊ฐ€ ์กฐ๊ธˆ์”ฉ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ์ด ๋ถ€๋ถ„๋„ ์–ผ๋งˆ๋‚˜ ํ•„์š”ํ•œ์ง€ ๊ณ„์‚ฐ ํ•ด๋‚ด์–ด์„œ ๋ฐ์ดํ„ฐ์— ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด๋‹ค. 1. getCanlendarColumns // ๋”ด ํŒŒ์ผ์—์„œ import๋  ์ตœ์ข…๋ณธ // now๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ ์™œ ๋Œ์•„๊ฐˆ๊นŒ? // now๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด ๋งž๋‹ค. ๊ทผ๋ฐ ๊ทธ๋ƒฅ dayjs()์— ํŒŒ๋ผ๋ฏธํ„ฐ ์•ˆ ๋„ฃ์€ ๊ฒฝ์šฐ, dayjs()๋Š” ์ตœ์‹  ๋‚ ์งœ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. // ์ด๊ฑธ ์ด์šฉํ•œ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ƒฅ now ๋‹ค ์ง€์›Œ๋ฒ„๋ ค๋„ ๋™์ž‘ํ•œ๋‹ค. export const getCalendarColumns = (now) => { // now๋Š” ..
2023.04.05
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
๋‹ฌ๋ ฅ ํด๋ก ์ฝ”๋”ฉ (1) dayjs ์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณด๊ธฐ
1. dayjs๋Š” react์—์„œ ๋‚ ์งœ, ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•˜๊ณ  ์‹œ๊ฐ„ ๊ณ„์‚ฐ์„ ์œ„ํ•ด ์“ฐ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค. (1) install npm install dayjs yarn์€ ๋”ฐ๋กœ ๋ณด์‹œ๊ธธ.. (2) import ์ด์ œ ๋‹ค์šด ๋ฐ›์€ dayjs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๊ฒ ๋‹ค. dayjs ์ž์ฒด๋งŒ import ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ๋‹ค ์“ธ ์ˆ˜ ์—†๋‹ค. ๋ช‡๋ช‡ ํ•จ์ˆ˜๋“ค์€ ์ง์ ‘ import๋ฐ ์ƒ์†๋„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. 2. ๋งŽ์ด ์“ฐ์ด๋Š” ํ•จ์ˆ˜ ์•Œ์•„๋ณด๊ธฐ (0) ์‚ฌ์ „ ์„ธํŒ… now๋ผ๋Š” ๋ณ€์ˆ˜์— ๋…„์›”์ผ ์‹œ๋ถ„์ดˆ๋ฅผ ๋„ฃ์–ด์ฃผ๊ฒ ๋‹ค. ๋‹ค์Œ์ด dayjs๋ฅผ ํ†ตํ•ด ๋ณ€์ˆ˜์— ๋…„์›”์ผ, ์‹œ๋ถ„์ดˆ๋ฅผ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. const now = dayjs("2022-11-04 16:01:30"); (1) set ํ•จ์ˆ˜, format ํ•จ์ˆ˜ day(now).set("minute", 5)๋Š” now์—์„œ..
2023.04.05
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
๊ณ„์‚ฐ๊ธฐ - ํด๋ก ์ฝ”๋”ฉ (CustomHook ์œผ๋กœ ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“  ๋ถ€๋ถ„ ๊ฐ์‹ธ๊ธฐ)
ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ์ƒํƒœ ๋ณ€ํ™” ๋ณ€์ˆ˜, ํ•จ์ˆ˜๋“ค๊ณผ View ๋ถ€๋ถ„์ด ํ˜ผ์žฌ ํ•˜๋ฉด, ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๋‹ค. ๊ทธ๋ž˜์„œ ์ƒํƒœ ๋ณ€ํ™” ๋ณ€์ˆ˜, ํ•จ์ˆ˜๋“ค์€ ๋‹ค๋ฅธ ํŒŒ์ผ๋กœ ๋นผ์ฃผ๊ณ , ๊ทธ ํŒŒ์ผ return ๊ฐ’์— ํƒœ์›Œ์„œ View part ํŒŒ์ผ์—๊ฒŒ ๊ฑด๋„ค๋‹ค ์ฃผ๋Š” ์‹์œผ๋กœ ํ•ด์•ผ์ง€ ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค. ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์—ˆ๋˜ Hook๋“ค์„ ๋ชจ์•„ ๋‚˜๋งŒ์˜ Hook file์„ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. **์ฃผ์˜์ ** Hook์€ ๋ฌด์กฐ๊ฑด use๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‹œ์ž‘ํ•ด์•ผํ•จ. Custom Hook (์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค๋ ค๋Š” Hook) file ๋„ ์˜ˆ์™ธ ์—†์Œ ์ด๋ฒˆ์—” ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“œ๋Š”๋ฐ ์ผ๋˜ Hook ์ด๋‹ˆ๊นŒ useCalculator๋ผ๊ณ  ์“ฐ์ž. ์ด ์•ˆ์— ๋‚ด์šฉ ๋‹ค ๋„ฃ๊ณ  return {} (๊ฐ์ฒด) ์•ˆ์— ํƒœ์›Œ ๋ณด๋‚ธ๋‹ค. ()๋Š” ํ•˜๋‚˜์˜ ๊ฐ’ ๋ฐ–์— ๋ชป ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— {}๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ()๋Š” ์•„๋ฌด ์˜๋ฏธ ์—†๊ณ  ๊ทธ๋ƒฅ..
2023.04.05
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
๊ณ„์‚ฐ๊ธฐ ํด๋ก ์ฝ”๋”ฉ - ์˜ˆ์™ธ์ฒ˜๋ฆฌ
ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๋•Œ ์ˆ˜๋งŽ์€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๊ณ„์‚ฐ๊ธฐ์—๋„ ์ˆ˜๋งŽ์€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ์ผ๋‹จ ๋ช‡ ๊ฐœ๋งŒ ํ•ด๋ณด์ž ๋ฌธ์ œ1: ๋‘ ๋ฒˆ์งธ ๊ฐ’์„ ํ•œ ์ž๋ฆฌ ์ˆ˜ ๋ฐ–์— ํด๋ฆญํ•  ์ˆ˜ ์—†๋Š” ์ด์œ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ : const onPressNum = (num) => { if(currentOperator) { setResult(input); setInput(num); } else{ const newInt = Number(`${input}${num}`) setInput(newInt) } }; ์ฒซ๋ฒˆ์งธ ์ˆซ์ž ๋ˆ„๋ฅด๊ธฐ -> = ์•„๋‹Œ ์—ฐ์‚ฐ์ž ๋ˆ„๋ฅด๊ธฐ -> ๋‘ ๋ฒˆ์งธ ์ˆซ์ž ๋ˆ„๋ฅด๊ธฐ ์ˆœ์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. ์œ„์˜ ๋กœ์ง์„ ๋ณด๋ฉด ํ˜„์žฌ ์—ฐ์‚ฐ์ž๊ฐ€ ๊ณจ๋ผ์ ธ ์žˆ์œผ๋ฉด, ๋ถ™์—ฌ์“ฐ์ง€ ๋ง๊ณ , ๋ฐ”๋กœ ๋ฐ”๋กœ result๋กœ ๊ฐ’์„ ๋„˜๊ธฐ๊ฒŒ ๋˜์–ด์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‘ ๋ฒˆ์งธ ์ˆซ์ž์—์„œ๋Š” ํ•œ ์ž๋ฆฌ..
2023.04.05
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
๊ณ„์‚ฐ๊ธฐ ํด๋ก ์ฝ”๋”ฉ - ๊ณ„์‚ฐ ๋ฐ ์ดˆ๊ธฐํ™” ๋กœ์ง
0. Test ํ•˜๋Š” ๊ฐ’๋“ค์ด ๋ˆˆ์— ๋ณด์ด๋„๋ก UI์— test ๊ฒฐ๊ณผ ์ฐฝ ๋งŒ๋“ค๊ธฐ test ๊ฒฐ๊ณผ์ฐฝ์„ ๋งŒ๋“ค์–ด test ๋‚ด์šฉ์„ ํ•ญ์‹œ์ ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. main ํ•จ์ˆ˜์—๋‹ค๊ฐ€ ๋งŒ๋“ค์–ด์ค€๋‹ค. 1. Button์—์„œ ํ•จ์ˆ˜ ์ด์šฉํ•ด ์ค‘๋ณต ์ฝ”๋“œ ์ œ๊ฑฐ ๋ฐฐ์—ด์˜ Map ํ•จ์ˆ˜ ์ด์šฉ ํ•˜๋‚˜์˜ row์— ๋“ค์–ด๊ฐ€๋Š” ์ˆซ์ž ๊ฐ’๋“ค๋กœ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  - [7,8,9] ๋ฐฐ์—ด์˜ ๋‚ด์žฅ ํ•จ์ˆ˜ map์„ ์ด์šฉ (num)์€ ๋ฐฐ์—ด์˜ ์›์†Œ๊ฐ€ ์ฐจ๋ก€๋Œ€๋กœ ๋Œ€์ž…๋˜๋Š” ์ธ์ˆ˜ text๋Š” String ๊ฐ’์„ ๋ฐ›์•„์•ผ ํ•˜๋ฏ€๋กœ `${}`์ด์šฉํ•ด์„œ number ๋ณ€์ˆ˜์ธ num์„ String์œผ๋กœ ํ˜• ๋ณ€ํ™˜ ์ด๋Ÿฐ ์‹์œผ๋กœ 789, 456, 123์˜ ์ฝ”๋“œ๋ฅผ ์ค„์ด์ž. 2. ์ˆซ์ž ํด๋ฆญ ์‹œ ๊ฒฐ๊ณผ์ฐฝ์— ์ฐํžˆ๋„๋ก const onPressNum = (num) => { setInput(num); } ํ•ด๋‹น num..
2023.04.04
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
๊ณ„์‚ฐ๊ธฐ ํด๋ก ์ฝ”๋”ฉ(2) - ๊ฒฐ๊ณผ์ฐฝ ๋งŒ๋“ค๊ธฐ
1. ์ฝ”๋“œ ๋ฆฌ๋ทฐ (1) styled component ์ด์šฉํ•˜์—ฌ ํƒœ๊ทธ๋“ค ๊ฐ€๋…์„ฑ ๋†’์ด๊ธฐ a. styled component ๊น”๊ธฐ npm install styled-components b. styled component ์ด์šฉํ•˜์—ฌ ๊พธ๋ฏธ๊ธฐ styled Component ์ด์šฉํ•˜๋ฉด ๊ฐ€๋…์„ฑ์ด ์ข‹์•„์ง„๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ธ๋ผ์ธ ์Šคํƒ€์ผ๋กœ ๊พธ๋ฐ€ ๊ฒฝ์šฐ, style ์†์„ฑ๋“ค์„ ์ด์šฉํ•ด ๊พธ๋ฏธ๋Š” ๋‚ด์šฉ์„ ์ ์–ด์ค˜์•ผ ํ–ˆ๋‹ค. ์ด๋Š” ๊พธ๋ฏธ๋Š” ๋‚ด์šฉ์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. StyleSheet๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํƒœ๊ทธ๋“ค๊ณผ CSS ๊ฐ์ฒด๋“ค์„ ์—ฐ๊ฒฐํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ, ์ด๊ฒŒ CSS ๊ฐ์ฒด์˜ ์–‘์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ํ—ท๊ฐˆ๋ฆด ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค. ์Šคํƒ€์ผ๋“œ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์ปดํฌ๋„ŒํŠธ์˜ ๋‚ด์šฉ์— CSS๋ฅผ ์ฒจ๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ปดํฌ๋„ŒํŠธ๋Š” ์ด๋ฆ„์„ ๋งˆ์Œ๋Œ€๋กœ ํ•  ์ˆ˜ ์žˆ..
2023.04.04
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
๊ณ„์‚ฐ๊ธฐ ํด๋ก  ์ฝ”๋”ฉ (1) ์ˆซ์ž ๋ฐ ์—ฐ์‚ฐ์ž ๋ฒ„ํŠผ UI ๊ฐœ๋ฐœ
1. ์ฝ”๋“œ ๋ฆฌ๋ทฐ import React from "react" import { TouchableOpacity, View, Text } from "react-native" import styled from "styled-components/native" const ButtonContainer =styled.View` flex-direction: row; width: 100%; `; //Button Type : 'reset' | 'Operator' | 'num' const Button = ({text, onPress, flex, type}) => { const backgroundColor = (type === "reset") ? COLOR.RESET : (type === "operator") ? COLOR...
2023.04.04
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
๊ณ„์‚ฐ๊ธฐ ์˜ˆ์ œ UseState ์„ค์ •
1. ์ฝ”๋“œ ๋ฆฌ๋ทฐ UseState๋งŒ ์„ค์ • UseState๋Š” ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜ ์ด๋‹ค. ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์˜ ์ฒซ๋ฒˆ์งธ ์ธ์ž์—๋Š” ๊ฐ’์ด ์ €์žฅ๋  ๋ณ€์ˆ˜, ๋‘ ๋ฒˆ์งธ ์ธ์ž๋Š” ๊ฐ’์„ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. useState()์˜ () ์•ˆ์€ ๊ฐ’์˜ ์ดˆ๊ธฐ๊ฐ’์ด๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  UseState๋ฅผ ์„ธํŒ…ํ•˜๊ณ  ๊ฐ€๋ ค๊ณ  ํ•˜๋ฉด ๋˜๋ ค ๋จธ๋ฆฌ ์•„ํ”„๋‹ค. ์–ด์งœํ”ผ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ์ด ๋” ์ƒ๊ธฐ๋ฉด, ๊ทธ ๋•Œ ๋˜ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ๋งˆ์Œ ํŽธํžˆ ๋จน๊ณ  ๊ตต์ง ํ•œ ๊ฒƒ๋งŒ ์ผ๋‹จ ๊ตฌํ˜„ํ•œ๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ ํ•˜์ž.
2023.04.04
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
ํ„ฐ์น˜๋ฒ”์œ„ ๋„“ํžˆ๊ธฐ
1. ์•„์ด์ฝ˜์˜ ํ„ฐ์น˜๋ฒ”์œ„ ๋„“ํžˆ๋Š” ๋ฒ• (1) View๋กœ ๋˜์–ด์žˆ๋Š” icon ์ปดํฌ๋„ŒํŠธ๋ฅผ TouchableOpacity๋กœ ๋ฐ”๊พผ๋‹ค. (2) hitslop ์ด์šฉ TouchableOpacity์˜ hitslop ์†์„ฑ์€ ํ•ด๋‹น ์•„์ด์ฝ˜์˜ ํ„ฐ์น˜ ๋ฒ”์œ„๋ฅผ ๋Š˜๋ ค์ค€๋‹ค. top, bottom, left, right์˜ ์˜†์— ์ž๊ธฐ๊ฐ€ ๋Š˜๋ ค์ฃผ๊ณ  ์‹ถ์€ ๋งŒํผ์„ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค. const IconButton = ({name, bgColor}) => { return( ) }; ** ๊ณ๋‹ค๋ฆฌ ์ปดํฌ๋„ŒํŠธ์—์„œ ์†์„ฑ์„ props๋กœ ๋ฐ›์„ ๊ฒฝ์šฐ, {} ์—†์ด () ์•ˆ์— ๋ฐ”๋กœ ์ ์–ด์ฃผ๋ฉด ๋˜์—ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, props๋Š” ํ•˜๋‚˜์˜ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ค๋ฅ˜ ์ฝ”๋“ค๋ฅด ์ฝ์–ด๋ณด๋‹ˆ () ์•ˆ์—๋Š” ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด๊ฐ™์€ ๊ตฌ์กฐ์ฒด๋งŒ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์œ„์ฒ˜๋Ÿผ name, bgColor๋ฅผ ๋„ฃ์„๊ฑฐ..
2023.04.04
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
์ปดํฌ๋„ŒํŠธ ์Šคํƒ€์ผ๋ง
1. React-Native์—์„œ CSS ์Šคํƒ€์ผ๋ง์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. (1) inline ์Šคํƒ€์ผ ์ด๋Ÿฐ ์‹์œผ๋กœ ํƒœ๊ทธ ์•ˆ์—๋‹ค๊ฐ€ ์ ์–ด์ฃผ๋Š” ๊ฒƒ ์–‘์ด ๋งŽ์•„์ง€๋ฉด ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€์ง€๋งŒ, ๋ฐ˜๋Œ€๋กœ ์–‘์ด ์ ์œผ๋ฉด ๊ฐ€๋…์„ฑ์ด ์˜คํžˆ๋ ค ๋†’๋‹ค. (2) StyleSheet ์จ์„œ ๋‚ด์šฉ ๋ฐ‘์œผ๋กœ ๋นผ๊ธฐ ์–‘์ด ๋งŽ์•„์งˆ ๊ฒฝ์šฐ, ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง„๋‹ค. (3) expo์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ธ styled Component ์‚ฌ์šฉ ์ด๊ฑด ์ปดํฌ๋„ŒํŠธ์ธ๋ฐ ์•ˆ์— CSS ๊ธฐ๋Šฅ์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. a.์žฅ์ ์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์ด๋ฏ€๋กœ, ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์„ ๋‚ด๊ฐ€ ์“ฐ๋ ค๋Š” CSS์— ๋งž๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์ปดํฌ๋„ŒํŠธ๋งŒ ๋ณด์•„๋„ ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ๊พธ๋ฉฐ์งˆ ๊ฒƒ์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์–ด ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง„๋‹ค. b. ํ˜•ํƒœ (1) styled.View ํ˜น์€ Image, T..
2023.04.04
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
thumbnail
Scroll View ๋Œ€์‹  FlatList ์‚ฌ์šฉํ•ด๋ณด๊ธฐ
1. Scroll View ์™€ FlatList์˜ ์ฐจ์ด์ . ScrollView๋Š” ํ™”๋ฉด์— ๋ณด์ด์ง€ ์•Š๋Š” ๋ถ€๋ถ„๋„ ๋‹ค ๋žœ๋”๋งํ•˜์—ฌ ๋งŒ๋“ค์–ด ๋†“๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ํ™”๋ฉด์—์„œ ๋ฒ—์–ด๋‚˜๋Š” ๋ถ€๋ถ„์„ ๋ณด๊ณ  ์‹ถ์œผ๋ฉด, ์Šคํฌ๋กค ํ•ด์„œ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค. ๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ์ง€ ์•Š๊ณ  ๊ณ ์ •์ ์ผ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ˜๋ฉด FlatList๋Š” ํ™”๋ฉด์— ๋ณด์ด๋Š” ๋ถ€๋ถ„๋งŒ ๋žœ๋”๋งํ•˜์—ฌ ๋งŒ๋“ค์–ด ๋†“๋Š”๋‹ค. ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š” ๋ถ€๋ถ„์„ ๋ณด๊ณ  ์‹ถ์–ด ์Šคํฌ๋กค ํ•  ์‹œ ๊ทธ ๋•Œ ์•ˆ ๋งŒ๋“ค์–ด ๋†“์€ ๋‚ด์šฉ๋“ค์„ ๋งŒ๋“ ๋‹ค. ๋ฏธ๋ฆฌ ๋ชจ๋“  ๋‚ด์šฉ์„ ๋งŒ๋“ค์–ด ๋†“๋Š” Scroll View์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์••๋„์ ์œผ๋กœ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค. 2. ์ฝ”๋“œ ๋ฆฌ๋ทฐ (1) FlatList์˜ ์†์„ฑ๋“ค ๋œฏ์–ด๋ณด๊ธฐ index} ItemSeparatorComponent={ItemSeparatorComponent} stickyHe..
2023.04.03
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
TabBar
1. ์ฝ”๋“œ ๋ฆฌ๋ทฐ (1) App.js export default function App() { const [isOpened, setIsOpened]=useState(true); const [selectedTabIdx, setSelectedTabIdx] = useState(0); const onPressArrow = () => { console.log("clicked arrow") setIsOpened(!isOpened) } return ( ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', paddingTop: statusBarHeight, }, }); a. tabBar ์ œ์™ธํ•œ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋“ค์€ view..
2023.03.30
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก 
์นœ๊ตฌ๋ฆฌ์ŠคํŠธ ํ† ๊ธ€ ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ
์นœ๊ตฌList๋ฅผ ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ํ† ๊ธ€ ์‹œํ‚ฌ ๊ฒƒ์ด๋‹ค. ํ† ๊ธ€ ์‹œํ‚ฌ๋ ค๋ฉด boolean ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ทธ ๊ฐ’์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™” ์‹œ์ผœ์ฃผ๋ฉด ๋œ๋‹ค. (useState ์ด์šฉ) ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ณณ์€ friendSection, friendList 2๊ฐ€์ง€ ์žฅ์†Œ์ด๋‹ค. boolean ๋ณ€์ˆ˜๊ฐ€ false ์ผ๋•Œ, friendSection์€ ํ™”์‚ดํ‘œ๋ฅผ ์œ„๋กœ ๋ณด๊ฒŒ ํ•˜๊ณ , true ์ผ๋•Œ๋Š” ์•„๋ž˜๋ฅผ ๋ณด๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. friednList์—์„œ boolean ๋ณ€์ˆ˜๊ฐ€ false ์ผ ๋•Œ, return ๊ฐ’์„ null๋กœ ์ค˜์„œ ์•ˆ ๋ณด์ด๊ฒŒ ๋งŒ๋“ค๊ณ  true์ผ ๋•Œ ์›๋ž˜ ๋กœ์ง์„ ๋ณด์ด๊ฒŒ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ ์“ฐ์ด๋Š” ๊ฒƒ์ด ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ํ˜น์€ if๋ฌธ, &&๋ฌธ ์ด๋‹ค. 1. ์ฝ”๋“œ ๋ฆฌ๋ทฐ (1) App.js // useState๋กœ boolean ๋ณ€์ˆ˜์˜ ์ƒํƒœ ..
2023.03.27
๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ/React Native-์ด๋ก