일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프론트엔드
- JavaScript
- 인터뷰
- 데이터분석
- growthhacking
- 컴포넌트
- GA4
- 구글애널리틱스
- Weirdsector
- UTM
- Datanugget
- 개발자인터뷰
- figma
- 피그마
- 데이터너겟
- 마케팅
- 개발자
- 디자이너
- UX
- 그로스해킹
- 개발스터디
- 그로스해커
- 프론트엔드개발자
- 그로스마케터
- 구글애널리틱스4
- 위어드섹터
- LABBIT
- 개발일지
- 구글애즈
- 개발공부
- Today
- Total
위어드섹터 공식 블로그
[프론트엔드 / React Native] 생략, 보여주기 기능을 하는 여러 버튼들을 어떻게효과적으로 구현 할 수 있나요? 본문
[프론트엔드 / React Native] 생략, 보여주기 기능을 하는 여러 버튼들을 어떻게효과적으로 구현 할 수 있나요?
위어드섹터 2022. 7. 18. 18:30진행 중인 프로젝트에서 펼쳐보기 버튼을 누르면 상세보기가 되고 생략 버튼을 누르면 생략이 되는 버튼을 컴포넌트가 추가될 때 자동으로 생성되는 것을 목표로 구현해보았습니다.
처음 시도에서는 컴포넌트를 보여주는 것을 관리하는 state를 각각 만들어서 독립적으로 관리하려고 했습니다. 하지만 그렇게 되면, 추가 버튼을 눌러서 컴포넌트를 새로 만들면 새롭게 변수를 만들어야 하는데, 변수를 자동 생성하는 게 쉽지 않았고 변수가 많아짐에 따라 코드의 가독성이 저하되고 유지 보수하는데 어려움이 있는 문제가 발생하였습니다.
이후, 컴포넌트를 보여주는 Boolean 값들을 가지는 배열을 state로 만들었습니다. 그렇게 함으로써 새롭게 컴포넌트를 만들 때, 배열에 값을 push를 해서 관리하기 용이하도록 하였습니다.
이미지 출처: https://ko.reactjs.org/docs/hooks-state.html
<구현 코드>
<View style={styles.destinationDeleteBtn}>
<Pressable onPress={() => setIsDelete([!isDelete[0], isDelete[1]])}>
<Text style={styles.DeleteBtnText}>삭제</Text>
</Pressable>
</View>
<Pressable onPress={() => {setIsdisplay([!isDisplay[0], isDisplay[1]]);}}>
<Image style={styles.bottomArrowWhite} source={isDisplay[0] ? bottomArrowWhite : topArrowWhite} />
</Pressable>
또한, 각 컴포넌트에 해당하는 값을 저장하기 위해 배열에 object 형식으로 값을 저장하면 나중에 값이 추가될 때 map(item, index)를 이용하면 각 컴포넌트에 맞는 값을 불러올 수 있다는 것을 알게 되었습니다.
출처: https://velog.io/@claire-euni/js-map%ED%95%A8%EC%88%98%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C
이번에 공부하면서 느낀 점은 같은 기능을 하는 변수들이 필요할 때, 배열의 각 요소를 변수로 이용하고 그 값에 object를 넣을 것. 그리고 React Native를 잘 이용하기 위해 useState를 이용하여 state가 바뀔 때마다 렌더링이 될 수 있도록 변수의 값이 달라질 때 적용해보도록 하겠습니다.
블로그 구독자 문의 주소 : info@weirdsector.co.kr
'Developing > 프론트엔드' 카테고리의 다른 글
[ 프론트엔드 / css, jquery ] 버튼 애니메이션 (0) | 2022.08.08 |
---|---|
[FrontEnd / React Native] Xcode를 사용하여 iOS 어플 테스트 하기 (0) | 2022.08.08 |
[ FrontEnd / React Native ] ScrollView 스타일 옵션 (0) | 2022.07.18 |
[FrontEnd / JavaScript] 반복문을 이용한 삼각형 만들기 (0) | 2022.07.18 |
[FrontEnd / JavaScript] 우리가 사용하는 키워드는 무엇일까요? (0) | 2022.07.05 |