[ReactNative] A VirtualizedList contains a cell which itself..์—๋Ÿฌ
๐Ÿ“” Studying/๐Ÿšง Errors 2023. 1. 11. 08:42

์–ด๋–ค ์—๋Ÿฌ? ํ”Œ๋žซ๋ฆฌ์ŠคํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ERROR A VirtualizedList contains a cell which itself contains more than one VirtualizedList of the same orientation as the parent list. You must pass a unique listKey prop to each sibling list. ํ”Œ๋žซ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ค‘์ฒฉ๋˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ๋ฒˆ ์“ฐ์ผ ๋•Œ ๋ชจ๋“  ํ˜•์ œ ๋ฆฌ์ŠคํŠธ์—๊ฒŒ ํ‚ค๊ฐ’์ด ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ์‚ฌ์‹ค ์—๋Ÿฌ์—์„œ ๋‹ต์„ ์ฃผ๊ณ ์žˆ์—ˆ์ง€๋งŒ listKey๊ฐ€ keyExtractor์™€ ์—ฐ๊ด€์ด ์žˆ๋Š”์ค„ ์•Œ๊ณ  ๋งŽ์€ ์‚ฝ์งˆ์„ ํ–ˆ๋‹ค (...) key๊ฐ€ ์œ ๋‹ˆํฌํ•œ ๊ฐ’์ด ์•„๋‹ˆ์–ด์„œ ๊ทธ๋Ÿฐ๊ฐ€? ์‹ถ์–ด์„œ ์ด๋Ÿฐ ์‚ฝ์ง‘๋“ค์„ ํ–ˆ์—ˆ๋‹ค. ..

[ReactNative] xml2js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ XML to JSON ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 9. 22:05

Today, What I learned? ํ”„๋กœ์ ํŠธ ์ค‘!.. api์—์„œ ๊ฐ€์ ธ์˜ค๋Š” xml ๋ฐ์ดํ„ฐ๋ฅผ JSON ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ •์„ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค. ๋จผ์ € ์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ด๊ฒƒ์ด๋‹ค. https://github.com/connected-io/react-native-xml2js GitHub - connected-io/react-native-xml2js: XML to JavaScript object converter. XML to JavaScript object converter. Contribute to connected-io/react-native-xml2js development by creating an account on GitHub. github.com ๋ณ€ํ™˜ํ•˜๊ธฐ const p..

[ReactNative] Expo ์„œ๋ฒ„ ์‹คํ–‰์‹œ Error: EMFILE: too many open files, watch
๐Ÿ“” Studying/๐Ÿšง Errors 2023. 1. 9. 10:07

์—๋Ÿฌ ๋ฐœ์ƒ ๋ฉ€์ฉกํžˆ ์ž˜ ๋˜๊ณ ์žˆ๋˜ expo ์„œ๋ฒ„๊ฐ€ ๊ฐ‘์ž๊ธฐ yarn start ํ•˜๋‹ˆ ์•„๋ž˜ ์˜ค๋ฅ˜๋ฅผ ๋‚ด๋ฉด์„œ ์ข…๋ฃŒ๋˜์—ˆ๋‹ค. node:events:505 throw er; // Unhandled 'error' event ^ Error: EMFILE: too many open files, watch at FSWatcher._handle.onchange (node:internal/fs/watchers:204:21) Emitted 'error' event on NodeWatcher instance at: at NodeWatcher.checkedEmitError (/Users/yjlee/project/intermission/node_modules/sane/src/node_watcher.js:143:12) at FSWatche..

[ReactNative] ์ค‘์ฒฉ ๋ผ์šฐํ„ฐ ๋„ค๋น„๊ฒŒ์ด์…˜ ์ง€์ •ํ•ด์„œ ํŽ˜์ด์ง€ ์ด๋™
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 6. 21:03

Today, What I learned? ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ์—์„œ ์ค‘์ฒฉ ๋ผ์šฐํ„ฐ๋กœ Stack์„ ๋งŒ๋“ค์–ด๋‘๊ณ , ๋‚ด๋น„๊ฒŒ์ด์…˜์„ ์ง€์ •ํ–ˆ์„ ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. ์ค‘์ฒฉ ๋ผ์šฐํ„ฐ์—์„œ๋Š” ๋„ค๋น„๊ฒŒ์ด์…˜์„ ์–ด๋–ค ์‹์œผ๋กœ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋‚ด๋น„๊ฒŒ์ด์…˜ ๊ตฌ์กฐ ์šฐ์„  ๋„ค๋น„๊ฒŒ์ด์…˜ ๊ตฌ์กฐ๋Š” Root๋ผ๋Š” ์Šคํƒ์—์„œ ์Šคํƒ๊ณผ ํƒญ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์ฃผ๊ณ  ์žˆ๋Š”, ์ค‘์ฒฉ๋œ ๊ตฌ์กฐ๋‹ค. ์ค‘์ฒฉ๋œ ๋„ค๋น„๊ฒŒ์ด์…˜ ์œ„ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์—๋„ ์žˆ๋Š” navigation ๊ด€๋ จ ๋งํฌ๋กœ ์ด๋™ํ•ด์„œ ๋ณด๋ฉด ์ผ๋ฐ˜์ ์ธ ๋‚ด๋น„๊ฒŒ์ด์…˜ ์ง€์ •์€ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ๋‹ค. navigation.navigate('ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ๋ช…'); ์ค‘์ฒฉ๋œ ๋‚ด๋น„๊ฒŒ์ด์…˜์—์„œ๋Š” ๋จผ์ € ์ƒ์œ„ ๋‚ด๋น„๊ฒŒ์ด์…˜์„ ์ง€์ •ํ•ด ์ฃผ๊ณ  screen์ด๋ผ๋Š” ์†์„ฑ์œผ๋กœ ํŽ˜์ด์ง€๋ช…์„ ์ง€์ •ํ•œ๋‹ค. navigation.navigate('Root', {..

[ReactNative] React-Query๋กœ ๋ฌดํ•œ์Šคํฌ๋กค ์ ์šฉํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 5. 22:25

Today, What I learned? ๋ฆฌ์•กํŠธ ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌดํ•œ์Šคํฌ๋กค์„ ์ ์šฉํ•ด ๋ณด์•˜๋‹ค. ๋ฌดํ•œ์Šคํฌ๋กค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์€ ์•„์ง๊นŒ์ง€ ์‹œ๋„ํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋˜ ๊ธฐ๋Šฅ์ด์—ˆ๋Š”๋ฐ useInfiniteQuery ํ›…์„ ์‚ฌ์šฉํ•ด์„œ ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค..! FlatList ๋จผ์ € FlatList์—์„œ ๋ฌดํ•œ์Šคํฌ๋กค์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋‘ ๊ฐ€์ง€ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. onEndReached ๋์ ์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ์‹คํ–‰์‹œํ‚ฌ ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์†์„ฑ onEndReachedThreshold ์Šคํฌ๋ฆฐ ๋†’์ด์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ์–ผ๋งˆํผ ๋จผ์ € fetch ํ•จ์ˆ˜๋ฅผ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰์‹œํ‚ฌ ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์†์„ฑ. ์ˆซ์ž๋กœ ๋“ค์–ด๊ฐ„๋‹ค. 1์ผ ๊ฒฝ์šฐ์—” ๋์— ๋„๋‹ฌํ–ˆ์„ ๊ฒฝ์šฐ ์‹คํ–‰๋œ๋‹ค. ๋กœ์ง์˜ ๊ตฌ์„ฑ ๋ฌดํ•œ ์Šคํฌ๋กค์ด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š”์ง€๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด ์ด๋ ‡๋‹ค. ๊ธฐ์กด ๋ฐฐ์—ด ..

[ReactNative] <FlatList> ์™€ <ScrollView>
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 4. 21:42

Today, What I Learned? ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ๊ณต์‹๋ฌธ์„œ์˜ ScrollView๋ฅผ ๋ณด๋‹ค๊ฐ€ ์™€์˜ ๋น„๊ตํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด ์ •๋ฆฌํ•ด ๋ณด๊ณ , ํ˜„์žฌ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ์˜ํ™” ์•ฑ์˜ ScrollView ๋ถ€๋ถ„์„ FlatList๋กœ ๋ฐ”๊ฟ”๋ณด๋Š” ์ž‘์—…์„ ๊ธฐ๋กํ•ด๋‘๋ ค ํ•œ๋‹ค. vs ์œ„ ์บก์ฒ˜๋Š” ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ๋ฐœ์ทŒํ•ด์˜จ ๋ถ€๋ถ„์ด๋‹ค. ์‚ดํŽด๋ณด๋ฉด ๋Œ€๋žต ์ด๋Ÿฐ ๋‚ด์šฉ์ด๋‹ค. ScrollView๋Š” ๋ Œ๋” ์‹œ์— ๋ชจ๋“  ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ์™€์„œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค. FlatList๋Š” ๋ Œ๋” ์‹œ์— ๋ณด์ด๋Š” ๊ฒƒ๋“ค๋งŒ lazilyํ•˜๊ฒŒ ๊ฐ€์ ธ์˜ค๊ณ , ์Šคํฌ๋กค์„ ๋‚ด๋ ค์•ผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์•„์ดํ…œ๋“ค์€ ์ง€์›Œ๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์™€ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค. FlatList๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค. ํ—ค๋” / ํ‘ธํ„ฐ ์ง€์› horizontal mode ์ง€์› ๋‚ด๋ ค ๋‹น๊ฒผ์„ ..

์ปค์Šคํ…€ํ›…์œผ๋กœ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ input ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2023. 1. 2. 22:20

Today, What I learned? ์ปค์Šคํ…€ ํ›…์— ์ต์ˆ™ํ•ด์ ธ ๋ณด๊ธฐ ์œ„ํ•ด ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋ง ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ธฐ์กด์˜ ์ฝ”๋“œ ์ค‘์—์„œ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ปค์Šคํ…€ํ›…์œผ๋กœ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค. state์™€ dispatch, submitHandler ๊นŒ์ง€ ๋ชจ๋‘ ๊ฐ€์ ธ์™”๋‹ค. useInput import { useState } from 'react'; import { useDispatch } from 'react-redux'; import { nanoid } from '@reduxjs/toolkit'; import { __addTodos } from '../redux/modules/todoSlice'; const useInput = () => { const [title, setTitle] = useState('');..

[ReactNative] AsyncStorage๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 30. 16:40

Today, What I learned? ์›น์ด๋‚˜ ์•ฑ์ด๋‚˜ ์–ด๋–ค ์ •๋ณด๋“ค์„ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ์™•์ฐฝ ๋งŒ๋“ค๊ณ  ์žˆ์œผ๋‹ˆ ์ด๊ฑธ ์˜ˆ์‹œ๋กœ ๋“ค์ž๋ฉด, ์ƒˆ๋กœ๊ณ ์นจํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์ „์— ์ž‘์„ฑํ–ˆ๋˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‚จ์•„์žˆ๋Š” ๊ฒƒ์ด ํ•„์ˆ˜! ๋ธŒ๋ผ์šฐ์ €์— ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด, React Native์—์„œ๋Š” AsyncStorage๋ฅผ ์ด์šฉํ•ด์„œ ์ €์žฅํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. Async Storage ๊ณต์‹ ๋ฌธ์„œ์— ๋“ค์–ด๊ฐ€ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์ด ์žˆ๋‹ค. Data storage system for React Native. ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€! ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹์ด Local Storage๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๊ฑฐ์˜ ํก์‚ฌํ•˜๋‹ค. https://react-native-async-storage.g..

[React Native] Expo๋กœ RN ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๊ธฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 29. 19:30

React Native ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋Š” ๋ฆฌ์•กํŠธ๋กœ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. ๋ชจ๋ฐ”์ผ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์ด ์žˆ์ง€๋งŒ, ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋‹ค. ๋น„์šฉ ์ ˆ์•ฝ ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ, iOS ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ One Source, ์ฆ‰ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋กœ ๋™์‹œ์— ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๋น„์šฉ, ์‹œ๊ฐ„ ์ธก๋ฉด์—์„œ ํฌ๊ฒŒ ์ ˆ์•ฝ๋œ๋‹ค. ๋‚ฎ์€ ๋Ÿฌ๋‹์ปค๋ธŒ ๋„ค์ดํ‹ฐ๋ธŒ ์—ญ์‹œ ๋ฆฌ์•กํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์— ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ค„ ์•„๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ์˜ ์ตœ๊ทผ ์•„ํ‚คํ…์ฒ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. React Native ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ์—์„œ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค...