inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

핸즈온 리액트 네이티브

6.8 :: 애니메이션 사용하기

styles 값을 상수로 사용하는 것

477

knh

작성한 질문수 2

0

안녕하세요! 강의 잘 보고있습니다 ㅎ

styles에서 중복 사용되는 값들을 아래와 같이 상수로 사용하셨는데,

const BOTTOM = 30;

const BUTTON_WIDTH = 60;

상수명과 관계 없는 style인데도 해당 상수를 갖고와서 / 2라던지 +10라는 식으로 가공해서 사용하는 이유가 궁금합니다!

예를들어서 borderRadius는 30이기때문에 BUTTON_WIDTH / 2를 주셨고,

paddingRight는 70이기때문에 BUTTON_WIDTH + 10을

주셨는데, 다른 부분들은 그대로 두셔서 어떤 기준으로 적용하신건지 모르겠습니다!

right: 10 이 친구도 BUTTON_WIDTH - 50

paddingLeft: 20 이 친구도 BUTTON_WIDTH - 40

shadowOpacity: 0.5 이 친구도 BUTTON_WIDTH / 120

등등으로 사용할 수 있는데 말이죠!

혹시 상수를 이용해서 이렇게 스타일 안에서도 쓸 수 있다! 를 보여주시려고 예를 들어서 적용하신걸까요?!

6.8 :: 애니메이션 사용하기

react-native

답변 1

1

김범준

안녕하세요 knh님,

 

borderRadius는 30이기 때문이 아니라, 버튼 크기의 절반이기 때문에 BUTTON_WIDTH/2로 설정한 것입니다.

마찬가지로, paddingRight는 버튼의 크기보다 10만큼 큰 값으로 설정하기 위해 BUTTON_WIDTH + 10으로 설정한 것입니다.

 

right를 BUTTON_WIDTH - 50으로 해도 똑같이 10이긴 하지만, 그 의미가 전달되지 않습니다.

right 값은 버튼의 가로 길이보다 50만큼 작게 설정하고자 하는 것이아니라, 오른쪽에서 10만큼 떨어지게 설정하고 싶은 것입니다. 그래서 BUTTON_WIDTH - 50 이 아니라, 10이라고 직접 작성한 것입니다.

 

만약 버튼의 크기가 60이 아닌 70이 된다 하더라도, paddingRight는 BUTTON_WIDTH + 10으로 작성하겠지만, right는 BUTTON_WIDTH - 60으로 변경해야 겠죠?

이렇게 특정 값에 영향을 받을때는 BUTTON_WIDTH + 10 처럼 작성하면, BUTTON_WIDTH이 변경되어도 자동으로 적용되어 BUTTON_WIDTH + 10을 변경할 필요가 없다는 장점이 있습니다.

하지만, 해당 값에 영향을 받지 않는 값에 사용하면, 그 값이 변경될 때마다 코드를 변경해줘야 하는 불편함이 있습니다.

 

감사합니다.

0

knh

감사합니다 😁

expo 가 업데이트 되면서 문제가 발생한거같습니다.

0

355

2

navigation.replace() 작동하지 않습니다.

0

152

2

UpdateProfileScreen 에서 사진 버튼 클릭시 오류발생.

0

137

2

닉네임 수정 후 확인 버튼을 누를시 한글자만 출력됩니다.

0

181

2

모달창에서 버튼이 출력되지 않습니다.

0

109

2

로그인 에러 출력시 default값만 나옵니다.

0

151

2

안드로이드 기기에서 SignUp 화면 관련 질문드립니다.

0

94

2

간단한 질문 하나만 드리겠습니다!

0

80

2

text.trim() 부분에서 오류가 발생합니다.

0

131

2

profile 화면에서 내가 쓴 글이 나타나지 않습니다.

0

145

2

글 저장시 파일 저장위치 관련 질문드립니다!

0

117

2

구글 지도 API 관련 오류로 질문드립니다!

0

149

1

HeaderRight 버튼이 작동하지 않습니다.

0

94

2

사진이 나오지 않는 문제로 질문드립니다.

0

118

2

defaultProps 관련 문의 드립니당

0

252

2

이미지 목록을 받아오는 부분에서 IOS 에서 문제가 발생합니다.

0

135

2

안드로이드 기기에서 헤더 부분이 작동이 안됩니다.

0

92

2

[TypeError: unsubscribe is not a function (it is undefined)] 오류 발생으로 질문드립니다.

0

114

2

7.15 :: 상태 변수와 컴포넌트 언마운트 관련 질문드립니다!

0

104

2

SIgnIn SignUp 화면이 안나옵니다.

0

130

2

마지막 useEffect 부분 질문드립니다.

0

104

2

ImagPickerScreen을 만드는 과정에서 문제가 발생하여 글을 남깁니다.

0

213

2

eslint.config.mjs 파일에 plugin 설정방법

0

752

1

ESLint.json 파일이 생성되지 않습니다.

0

242

2