inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

처음 배우는 리액트 네이티브

Stack Navigation - 헤더 수정

useSateAreaInsets를 Container에 넘겨주고 이것을 활용하는 부분이 이해가 잘 되지 않습니다.

215

Jun

작성한 질문수 3

0

const Container = styled.View`
  align-items: center;
  background-color: #ffffff;
  padding-top: ${({ insets: { top } }) => top}px;
  padding-bottom: ${({ insets: { bottom } }) => bottom}px;
  padding-right: ${({ insets: { right } }) => right}px;
  padding-left: ${({ insets: { left } }) => left}px;
`;

기존에 props에 있는 데이터를 사용할 때

${({theme}) => theme.color} 이런 식으로 사용했었는데 

문법이 좀 생소합니다. 좀 자세히 설명해주시면 감사드리겠습니다!

react-native javascript

답변 3

1

김범준

안녕하세요,

  

${ ({theme}) => theme.color } 부터 천천히 살펴보겠습니다. 

스타일드 컴포넌트는 ThemeProvider 컴포넌트에 의해 전달된 theme props를 사용할 수 있습니다. 
따라서, 다음과 같이 theme을 사용할 수 있습니다.
${ (props) => props.theme.color } 

  

우리는 props 중에서 theme만 사용할 예정이기때문에, 
${ ({theme}) => theme.color } 
라고 간단하게 작성했습니다. 

  

문의주신 내용도 동일한 방법으로 작성된 코드입니다. 
Container 컴포넌트로 insets라는 props를 전달해서, 스타일드 컴포넌트에서 사용했습니다. 
처음 코드는 다음과 같습니다. 
${ (props) => props.insets.top } 

  

우리는 props 중에서 insets만 사용하니 간단하게 다음과 같이 작성할 수 있습니다. 
${ ({insets}) => insets.top } 

마찬가지로, insets 에 있는 값중에서 top만을 사용하니 다음과 같이 작성할 수 있습니다. 
${ ({ insets: {top} }) => top } 

  

테스트를 위해 다음 코드를 브라우저의 콘솔, 혹은 터미널에서 node를 실행해서 확인해 보시면 이해가 편할것이라 생각합니다. 

const obj1 = {name: 'beomjun', insets: {top: 1, bottom: 2 }};

const func1 = (params) => console.log(params)

const func2 = ({name, insets}) => console.log(name, insets)

const func3 = ({name, insets: {top, bottom}}) => console.log(name, insets, top, bottom)

func1(obj1);

func2(obj1);

func3(obj1);

  

감사합니다. 

0

김범준

안녕하세요, 

  

"구조 분해 할당"이라고 검색하시면 됩니다. 
영어로는 "destructuring assignment" 라고 검색하시면 됩니다. 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

  

즐거운 하루 되세요. 

감사합니다. 

0

Jun

감사합니다! 자바스크립트 문법인 것 같아서 여쭤보기 죄송했는데 답변해주신 덕분에 많이 도움이 됐습니다!

${(props) => props.insets.top}에서 ${({insets})=> insets.top} 생략한 거랑

${({insets}) => insets.top}에서 ${ ({ insets: {top} }) => top }  이렇게 바꾸는 방식을 좀더 알아보고 싶은데

구글에 뭐라고 치면 자세히 나올까요?

맥북 m4에서 nvm으로 설치불가

0

101

2

expo 사용하지 않고 앱 실행 시, 데이터 불러오기

0

332

1

리덕스강의는 없나요?

0

263

1

선생님 도와주세요 ㅠㅠ (로그인, 회원가입, 콘솔 에러)

0

496

1

버젼 업데이트

0

411

1

expo start중 metro bundler가 같이 실행되지 않아요

0

495

1

모바일 expo 실행오류

0

846

1

안드로이드에서 expo실행이 안되요

0

833

2

터미널 다운 및 사용방법

0

290

1

expo init 에러

0

730

2

안녕하세요. 스택네비게이션 문제 질문드립니다 ㅜ

0

316

1

배포중 에러 해결이 안되네요.. ㅜㅜ

1

3215

1

안녕하세요! 강의 Chat App - Part 1 회원가입 부분에서 firebase 관련 에러가 납니다.

0

687

1

styled-components 에러

0

395

1

OS 네이트브 코드를 개발하면서 UI 를 리액트 네이티브로

0

480

1

저장하면 바뀐값들 보여야하는데 재렌더링이 안일어납니다..

0

492

1

안드로이드스튜디오 EXPO 어플 튕깁니다 ㅠㅠ

0

274

1

styled component를 사용하면 터집니다 ㅠㅠ

0

408

1

attrs, 속성, props 가 혼란스럽습니다.

0

345

1

안녕하세요, 강의 잘 들었습니다 :) RN과 파이어베이스 관련해서 질문드릴게 있습니다!

0

575

1

자꾸 The request timed out 에러가 뜹니다 .

0

1898

1

코드 좀 봐주세요 버튼 두개가 생성이 안되요

0

277

1

expo 실행시 스타일 속성 바로 보려면 어디서 보나요?

0

423

1

자바스크립트 () => 의미는요???

0

438

2