일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- code-push-standalone
- codepush
- react
- supabase 페이지네이션
- 글또10기x코드트리
- 페이지네이션
- 슬라이딩윈도우
- async
- TS
- xlsx-js-style
- Next.js
- supabase auth
- supabase authentication
- Spring
- 이진탐색
- map
- array
- javascript
- app.post
- 타입스크립트
- 코드푸시
- reactnative
- 스크롤이벤트
- 상속
- generic
- set
- Filter
- meatadata
- extends
- interface
- Today
- Total
목록React Native (20)
rhanziy
화면 플로우 1. 가게에 들어가 주문할 상품을 선택한다. 2. 선택한 상품 페이지에서 주문 정보 작성하기 버튼 클릭! 3. 관련 정보를 입력한다. 4. 주문 정보 확인 페이지에서 확인 후 결제로 이동 각 페이지가 1개씩 구현되어있고, 3번에서 입력한 정보를 4번 페이지에서 확인할 수 있어야 하기때문에 3번 페이지 입력form 값들을 onsubmit 요청을 하면 navigation에 태워 4번 페이지에 넘겨줘야하는 상황 3번 페이지 OrderInfoScreen (기능 외 나머지 코드는 생략했습니다.) const OrderInfoScreen: React.FC = () => { const {pageMove, canSubmit, ...methods} = useOrderInfoForm(productId); ret..
RefreshControl 스크롤뷰(scrollView)나 리스트뷰(FlatList)에서 상단에서 하단으로 끌어내려서 새로고침할 수 있는 기능이다. 🔽 공식문서 코드 import React from 'react'; import { RefreshControl, SafeAreaView, ScrollView, StyleSheet, Text, } from 'react-native'; const App = () => { const [refreshing, setRefreshing] = React.useState(false); const onRefresh = React.useCallback(() => { setRefreshing(true); setTimeout(() => { setRefreshing(false); }..
사용자 인풋이나 form작성 시 키보드에 가려져서 입력폼이 안보일 때가 있다. 그럼 KeyboardAvoidingView를 쓰자! 안드로이드와 ios 플랫폼에 따라 조건처리해줘야댄다~ ios는 padding으로! 확인해보면 autoFocus 속성으로 인해 자동으로 포커스가되며 키보드에 더이상 가리지 않게 될 것. 그 외에도 View 컴포넌트처럼 style을 적용하거나 다른 방식으로 다룰 수 있다. 그래도 가린다면 높이 값을 더 설정하자! 👉 keyboardVerticalOffset {...} 사실 이쪽은 아직 잘 이해가 안됨. KeyboardAvoidingView + 적절한 padding 값 조절로 해결하는 방법인데, 기기별로 statusBar 높이가 다르니 높이를 구해주는 라이브러리를 사용하든가... ..
why ? 가게 전체 상품에 대한 리뷰를 가져올때 reviews/{ storeId } 로 데이터를 요청하잖아요?? 근데 useInfiniteQuery 공식문서에는 암만 찾아봐도 fetchApi 함수에 파라미터 여러개 넘기는 방법이 없어서 찾아봄. 🔽 이게 공식문서 const { fetchNextPage, fetchPreviousPage, hasNextPage, hasPreviousPage, isFetchingNextPage, isFetchingPreviousPage, ...result } = useInfiniteQuery({ queryKey, queryFn: ({ pageParam = 1 }) => fetchPage(pageParam), ...options, getNextPageParam: (lastPa..
기존에 구현되어있는 상품리뷰에 점주들이 댓글을 작성할 수 있는 기능을 추가해야했다. 그러면서 storeId 에 딸린 리뷰 목록을 불러오는 페이지를 새로 만들면서 겪은 시행착오~ 리액트 네이티브에서는 보통 무한스크롤 + 페이징으로 처리하는 것 같아 정리를 해놓고자 한다. 1. useInfiniteQuery 파라미터 값만 변경하여 동일한 useQuery를 무한정 호출할 때 사용하는 react query의 hook이다. useQuery와의 차이점은 ✅ 반환 객체에서 반환된 데이터 프로퍼티의 형태 useQuery에서의 데이터는 단순히 쿼리함수에서 반환된 데이터이고, useInfiniteQuery에서는 두개의 프로퍼티를 가지고온다. 하나는 데이터 페이지 객체의 Array 이고, 페이지 하나하나에 있는 요소가 us..

카카오 간편 소셜 로그인 기능 구현 중 맞닥뜨린 에러. 라이브러리는 /react-native-kakao-login 을 사용했다. 이걸로 몇시간을 삽질했나 우하하!!!^__^ invalid hool call 에러가 뜬 3가지 이유를 알아보자~ 1. react와 react dom버전이 일치하지 않을 수 있다. 이건 뭐,, 패스 2. hook 규칙 위반! 대부분 이 이유로 만났을검니다. 그래서 3번 사유도 패스할거임. 훅 규칙을 아라보자. React에서 함수 컴포넌트를 렌더링하는 동안에만 Hooks를 호출할 수 있습니다. ✅ 함수 컴포넌트 본문의 최상위 레벨에서 호출하세요. ✅ 사용자 정의 Hook 본체의 최상위 레벨에서 호출하세요. 내 로그인 기능 흐름은 원래 이랬다. 1. 카카오 로그인 버튼을 누르면 ge..
하.. . . . .. .. ...... ToDo 만들면서... 작성한 리스트의 edit 버튼을 누르면 onPress 함수에 의해 해당 key의 isEdit 값을 반전시키고(boolean) isEdit가 true 면 text로 보이던 value값을 TextInput 태그를 통해 수정할 수 있게 기능을 개발하려고 했음... { toDos[key].isEdit === true ? : {toDos[key].text} } ERROR Error: Too many re-renders. React limits the number of renders to prevent an infinite loop. ERROR Warning: Failed prop type: Invalid prop `onSubmitEditing` of..
AsyncStorage만들던 어플을 껐다 켜도 데이터가 저장이 되는 storage를 구성해보자! react native에서 제공하는 AsyncStorage를 프로젝트에 설치해 사용하면 된다. import도 잊지맙시다.npx expo install @react-native-async-storage/async-storage import AsyncStorage from '@react-native-async-storage/async-storage'; 저장하기(set)saveToDos -> AsyncStorage.setItem(데이터) 비동기 함수로 처리한다. JSON형식으로 저장해야함~ const addToDo = async() => { if(text === '') { return } const newToDos..