받아오는 데이터 중 백오피스에서 텍스트 편집기로 입력한 데이터는 html로 들어오게 되어 react-native-render-html 라이브러리로 앱에 디스플레이 해주고 있는데, 편집기에서 컬러를 지정하지 않으면 앱에 테마(Light Mode/Dark Mode)에 따라 텍스트 색상이 다르게 적용되어 이슈가 생겼다. 해결 방법은 다음과 같다. # solution. const spanElementModel = HTMLElementModel.fromCustomModel({ tagName: 'span', contentModel: HTMLContentModel.mixed, getUADerivedStyleFromAttributes({ face, color, size }) { let style = {}; if (fa..
◼ NPM 라이브러리 수정 방법 **npm install [패키지명]** 으로 설치한 라이브러리 모듈을 수정 후 npm install을 하게 되면 기존 설치했던 라이브러리 버전의 코드만 남게 되어 수정했던 부분은 날아가게 된다. 1) npm module의 git 저장소로 들어간다. 2) 해당 저장소를 fork 해 내 저장소로 가져온다. → fork가 완료되면 상단 좌측에 [Username]/[Packagename] 으로 변경된다. 3) npm install git+[fork한 저장소 주소] 명령어로 패키지를 설치해준다. → 예시) npm install git+https://github.com/ktaeyang/react-native-star-rating-widget 3-1) 정상적으로 fork한 저장소에서..
scrollview나 flatList 등 scrollview를 기반으로 만들어진 요소들에게 style을 주면 Invariant Violation: ScrollView child layout (["justifyContent"]) must be applied through the contentContainerStyle prop. 위와 비슷한 에러가 나는데, 'contentContainerStyle' 로 스타일을 주라는 뜻이다. 그런데 가끔 골치아픈 경우가 생기는데, justifyContent를 'center' 혹은 'flex-end' 로 줘서 UI를 그려야 할 때가 있는데 이 친구는 flex값을 주어야 동작한다. 하지만 flex값을 주게되면 스크롤이 안되는 경우가 있는데, 이럴 경우에는 flex 대신 fle..
RN으로 개발하다보면 거의 필수적으로 쓰게되는 ScrollView와 FlatList. 그중 나는 FlatList를 사용하여 스크롤이 있는 UI에 배열로 들어오는 데이터들을 화면에 그려주곤 하는데, RenderItem의 {item}에 타입을 지정해주기가 여간 까다로운게 아니다. 알고보니 이건 인수를 넣는 쪽에 타입을 지정해주려는 나의 습관과 고정관념의 문제였고 RN에서는 RenderItem에 타입을 지정해주는 아주 간단한 Type Props를 제공해준다. import {FlatList, ListRenderItem} from 'react-native'; ... type TRenderItemProps = { a : string; b : number; ... } const RenderItem : ListRend..
맡은 프로젝트에서 회원가입 UI를 만드는데, 거주지역을 선택하는 부분에서 react-native-dropdown-picker react-native-dropdown-picker A single / multiple, categorizable, customizable, localizable and searchable item picker (drop-down) component for react native which supports both Android & iOS.. Latest version: 5.4.4, last published: 2 months ago. Start using react-native-dropdown-picke www.npmjs.com 를 사용하였다. 하지만 이전 프로젝트에서도 잘 사용..
나는 RN을 개발할 때, 주로 Window 환경에서 Android로 개발한 후 디버깅 단계에서 iOS의 UI 등을 확인하곤 하는데, iOS의 노치 부분을 제어하기 위해 SafeAreaView로 감싼 Component임에도 노치 부분을 제어할 수 없는 몇몇 컴포넌트가 존재하곤 한다. 그래서 요즘 아주 흥미가 생긴 chatGPT에게 노치 부분을 제어하는 방법에 대해 물어봤다. https://k-taeyang.tistory.com/43 Controlling the Notch in React Native The notch is a feature on certain devices, such as the iPhone X and later, which contains the front-facing camera and..
데이터를 받아오기도 전에 화면이 렌더링되는 react.. 예를 들어 api를 통해 받아온 데이터를 화면에 디스플레이 해줘야 할 때, 분명 해당 데이터를 담는 state는 초기에 undefined이면 무조건 에러가 날 것이다. 그래서 데이터가 들어오면 렌더링이 되게끔 하는 가장 간단한 방법은 ... const [data, setData] = useState(); return data ? ( {data.title} ) : null ... 이런식으로 data가 들어왔을 때 렌더링이 되게끔 처리해주면 되는데, null로 처리한다면 데이터가 들어올때까지 빈 화면만 노출될 것이다. 이럴 경우엔 사용자 입장에서 움직이는 로딩 컴포넌트가 있어야 한다. 이 포스팅에서는 로딩 컴포넌트를 간단하게 만들어보는 예제를 다루려 ..
새 프로젝트를 만들면서 기존 프로젝트에 있는 npm 라이브러리를 대량으로 설치하고 npm run android 명령어를 실행했더니 Failed to call into JavaScript module method AppRegistry.runApplication(). 샬라샬라... 이럴 땐 역시 마법의 명령어 1. cd android && gradlew clean 2. (android 경로라면) cd .. && react-native start --reset-cache 를 해주고 다시 메트로를 실행시키면 해결된다!
평소 프로젝트에서는 react query 라이브러리로 api를 호출하는데 급하게 한 api만 호출해서 데이터가 앱에 제대로 들어오는지 확인하려고 오랜만에 fetch 함수로 스크립트에 쓰려는데, 이상하게도 데이터가 undefined로 뜬다... ㅠㅠ useEffect(() => { fetch(url) .then((response) => { response.json(); }) .then((data) => { console.log(data) }) .catch((err) => console.log('err :', err)); }, []); 위와 같은 코드에서, fetch된 데이터를 json()으로 변환해주는 부분에서 중괄호로 감싸게 되어 이후 then절에서 undefined를 반환하게 된 것이었다.. useEf..
프로젝트를 하던 중에, 백오피스에서 텍스트 편집기를 통해 저장한 데이터를 html로 받아와 앱에 디스플레이 해주는 부분을 수행하였다.(공지사항, FAQ 등) 이를 위해 react-native-render-html 라이브러리를 사용하였는데, There is no custom renderer registered for tag "font" which is not part of the HTML5 standard. The tag will not be rendered. If you don't want this tag to be rendered, add it to "ignoredDomTags" prop array. If you do, register an HTMLElementModel for this tag with..
- Total
- Today
- Yesterday
- build
- ChatGPT
- React Hooks
- useEffect
- useState
- Firebase
- 스파르타코딩클럽
- typeScript
- Mac
- vsC
- IMAGE
- JavaScript
- React Native
- rn
- 코린이
- 앱개발
- Ai
- CSS
- ios
- REACT
- Xcode
- 영종도데이트
- vscode
- Android
- It
- FlatList
- app
- TS
- gradle
- ReactNative
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |