목록분류 전체보기 (160)
Frontend 개발자 - hyo.loui
🎯목적 : CRUD : Delete API 생성, Firebase : firestore data 삭제하기, CRUD 최종 완성 1. 삭제 아이콘에 함수 추가 태그에 onPress 속성으로 setDelete()함수를 추가하고 파라미터로 todo의 id를 넘겨줬다 2. create Delete API 아주 심플하다 지금까지 했던 과정을 생각해보자, 서버 통신이 이루어지기 때문에, 비동기 처리를 하고 "todos"라는 폴더에 존재하는 todo.id(파라미터로 받아온 것)를 deleteDoc 을 사용해서 삭제하면 된다! 3. 결과 화면 이로써, CRUD 모두 너무나도 잘 구현이 되었다! 하지만 UX를 고려했을 때 실수로 삭제버튼이 눌려진다면 내 소중한 todo가 순식간에 날아가버린다ㅜㅜ 그래서 다시한번 컨펌을 ..
🎯목적 : CRUD : Update API 생성 , Firebase : FireStore data 업데이트 🤢 오류 해결 : WARN Possible Unhandled Promise Rejection : TypeError: _n7.indexOf is not a function. 1. setDone (체크아이콘) 체크 아이콘을 누르면 함수가 실행되어 해당하는 todo의 isDone 속성을 토글로 변경하고, isDone이 true 라면 완료했다는 효과(text-decoration: line-through)를 주자 아이콘 클릭 시 실행되는 함수이고, 서버통신을 하는 부분이니 비동기 처리를 해줬다. 또 현재 가지고 있는 todos의 isDone을 토글해야 했기 때문에 find 라는 변수로 지금 가진 isDone..
❤️🔥TIL : Today I Learned 🎯목적 : CRUD : Read API 추가, onSnapshot API 활용하기 1. Firestore 의 DB 가져오기 저번 포스팅에서 Creat API를 만들어 Firestore에 "todos" 라는 db를 넣을 수 있었다 이번에는 가져와서 보여줘야한다! firebase API 활용하자! 선택지는 2가지다 getDocs API onSnapshot API getDocs로도 가져올 수 있겠지만 우리는 실시간으로 변동이 생기면 다시 데이터를 가져와야 하므로 state 처럼 사용해야 한다. 그래서 onSnapshot API 를 활용했다! import { onSnapshot } 으로 api를 가져온다 useEffect를 사용하여 컴포넌트가 마운트시 곧장 Read..
❤️🔥TIL : Today I Learned 🤢 문제 내용 : 위 영상처럼 수정 버튼을 클릭하고 수정을 한 후, 다른 투두에서도 이전에 수정했던 내용이 고스란히 남아있는 문제였다 🎈 문제 해결 과정 : 우선 코드부터 보자 수정 버튼을 클릭했을 때, 나타나는 태그이다 저 값에서 value가 editText 라는 state를 가지고 있었다.. onSubmitEditing 속성의 updateTodo라는 함수안에서 editText를 다시 setState로 바뀐 값으로 넘겨줄 수 있었다, 하지만, 더 간단하게 defaultValue 라는 것을 통해 처음 보여줄 값만 정해줬다. 수정하는 역할의 특성상 보여질 텍스트는 1회성이기 때문이다 input 태그에 기본값으로 가지고있는 속성으로 붙여줬고, editText를 ..
📝 WIL: Weekly I Learned Work done this week 이번 주 끝낸 일! 티스토리 포스팅 = 매일 TIL 일지 (목표, 오류, 정리로 세분화) Project : helprogrammer = 프로젝트 완성 ( 배포 >> 발표 ) React Native 강의 및 실습 = Todo-List (Local >> FireStore) Project review 리덕스를 활용해 프로젝트를 해보니 더욱 데이터를 다루는 부분이 중요하다고 느꼈다.. 데이터가 어떻게 생겼는지, 어떤상태인지 본인이 잘 파악하고 있어야 원인 모를 에러 없이 잘 동작할 것이다 그래서 redux-devTool 을 사용하는데, 이번 프로젝트에서 devTool 사용을 간과하고, 내가 맡은 삭제 부분에서 오류가 났다. 해당 부분..
🎯목적 : CRUD : Create API 추가, Firebase : FireStore 연결 1. Layout 만들기 위와 같은 레이아웃을 만들어 보겠다! 사실 '투두리스트'를 많이 만들어서 캠프 커리큘럼, 학습의 다양성에 의문점이 있었지만, 프론트엔드 개발자의 기본 자질인 CRUD의 기본기를 가장 핵심적으로 다루는 학습이라고 생각한다. 다시한번 복습하자면, ios에서 카메라 영역으로 인해 layout이 가려지는 문제로 태그를 사용해준다! 안드로이드에서는 문제가 없지만 첫 작업은 보통 ios로 작업을 해야 2중 작업이 줄어든다 그래서 '노치 제거' 라는 주석으로 태그 사용의 이유를 주석으로 설명했다. 크게 두 섹션으로 나눌 수 있는데 위 사진에서 알수 있듯, 고정 영역(Fiexd Part) & 스크롤 영..
❤️🔥TIL : Today I Learned 🎯목적 : state가 업데이트 되어야 정상적으로 리액트가 렌더링을 해주는 것에 대한 복기 🤢 문제 내용 : 리액트 네이티브로 To-Do-List 앱을 만들고 있던 중 생긴 문제였다.. 체크 아이콘이 클릭 되었을 때의 실행 함수이다 나름 로우코드를 해보겠다고 작성했다... 로그에 'isDone' 이 토글되어 잘 찍히길래 문제가 없겠구나 싶었다 그런데 문제는 단순하지 않았다. setState를 하지 않았기 때문에 렌더링이 일어나지 않아서 실시간 렌더링이 안되어 다른 컴포넌트로 이동 후 (리액트나, 코딩테스트) 다시 돌아와야 정상적으로 보였다...(새로고침 처럼) 위처럼 isDone 이 true 라면 "line-through"가 되면서 아이콘도 변해야 하는데 바..
🎯목적 : 리액트 네이티브 프로젝트를 생성하고 expo 패키지를 활용하여 쉬운 셋업 및 빠른 초기개발을 해보자! 🤢 오류 해결 : expo request time out CommandError: ngrok tunnel took too long to connect. 1. expo 계정에서 project 생성 . https://expo.dev/ Expo Expo is an open-source platform for making universal native apps for Android, iOS, and the web with JavaScript and React. expo.dev 위 사이트에서 계정을 만들어야 한다 계정을 생성했다면, Create a project 에서 프로젝트를 생성하면 아래로 넘어간다..