직접 앱 화면을 만들어보라는 예습 과제를 대뜸 받게 되어 엄청난 오류의 향연을 겪으며 맨땅에 헤딩하는 중.
CSS에 익숙해져서 나는 오류가 아주 많았는데, 검색하다가 이런 글을 발견하게 되어 나중에 찬찬히 읽어보려고 첨부.
https://wit.nts-corp.com/2020/03/23/6014
CSS와 리액트 네이티브의 차이를 적어두었는데 그걸 읽으니 '왜 이게 안 돼~!!' 하던 게 많이 해결되었다ㅠㅠ
 
공식문서들은 왜 전부 영어인 거지......
각국의 언어로도 번역해주세요......
그리고 예시 코드가 너무 부족해ㅠㅠㅠㅠㅠㅠ
 
오류가 너무 많이 나니까 급기야 프로그램에게 화를 내며 만지다가 결국 포기!!!!
이게 원래 만들었어야 할 모습 
 
 
이게 내가 하다가 포기한 예습 과제 
 
 
import  React  from   'react' ;   
import  main  from   './assets/main.png' ;   
import   {  StyleSheet ,  Text ,  View ,  Image ,  TouchableOpacity ,  ScrollView }   from   'react-native' ;   
 
export default function App() {
console.disableYellowBox = true;
//return 구문 밖에서는 슬래시 두개 방식으로 주석
return ()
 
}
 
const styles = StyleSheet.create({})
 
이게 리액트 네이티브의 기본 함수 골격이니까 복사해둔 뒤 가져다 쓰라고 강사님이 추천.
 
alingItems는 무조건 flex 영역 안에서만 동작한다.  alignSelf는 flex 영역 안에 없어도 정렬을 움직이게 할 수 있다.
 
이미지는 width와 height로, 혹은 flex로 영역을 잡아줘야만 화면에 나타난다.
 
강사님 그대로 따라하니까 또 잘 된다...최종 완성 코드는 아래로!!
 
import   React   from   'react' ; 
import   main   from   './assets/main.png' ; 
import  {  StyleSheet ,  Text ,  View ,  Image ,  TouchableOpacity ,  ScrollView }  from   'react-native' ; 
export   default   function   App () { 
   console . disableYellowBox  =  true ; 
   //return 구문 밖에서는 슬래시 두개 방식으로 주석 
   return  ( < ScrollView   style = { styles . container } > 
     < Text   style = { styles . title } > 나만의 꿀팁 </ Text > 
     < Image   style = { styles . mainImage }   source = { main }   /> 
     < ScrollView   style = { styles . middleContainer }   horizontal = {true} > 
       < TouchableOpacity   style = { styles . middleButtion01 } >< Text   style = { styles . middleButtonText } > 생활 </ Text ></ TouchableOpacity > 
       < TouchableOpacity   style = { styles . middleButtion02 } >< Text   style = { styles . middleButtonText } > 재테크 </ Text ></ TouchableOpacity > 
       < TouchableOpacity   style = { styles . middleButtion03 } >< Text   style = { styles . middleButtonText } > 반려견 </ Text ></ TouchableOpacity > 
       < TouchableOpacity   style = { styles . middleButtion04 } >< Text   style = { styles . middleButtonText } > 꿀팁 찜 </ Text ></ TouchableOpacity > 
     </ ScrollView > 
     < View   style = { styles . cardContainer } > 
       { /* 하나의 카드 영역을 나타내는 view */ } 
       < View   style = { styles . card } > 
         < View   style = { styles . cardText } > 
           < Text   style = { styles . cardTitle } > 먹다 남은 피자를 촉촉하게! </ Text > 
           < Text   style = { styles . cardDesc }   numberOfLines = { 3 } > 먹다 남은 피자는 수분이 날라가기 때문에 처음처럼 맛있게 먹을 수 없는데요. 이럴 경우 그릇에 물을 받아 전자레인지 안에서 1분 30초에서 2분 정도 함께 돌려주면 촉촉하게 먹을 수 있습니다. 물이 전자레인지 안에서 수증기를 일으키고, 피자에 촉촉함을 더해줍니다. 
           </ Text > 
           < Text   style = { styles . cardDate } > 2020.09.09 </ Text > 
         </ View > 
       </ View > 
     </ View > 
   </ ScrollView > ) 
} 
const   styles  =  StyleSheet . create ({ 
   container :  { 
     backgroundColor :   "#fff" 
  }, 
   title :  { 
     fontSize :   20 , 
     fontWeight :   "700" , 
     marginTop :   50 , 
     marginLeft :   20 
  }, 
   mainImage :  { 
     width :   "90%" , 
     height :   200 , 
     borderRadius :   10 , 
     marginTop :   20 , 
     alignSelf :   'center' 
  }, 
   middleContainer :  { 
     marginTop :   20 , 
     marginLeft :   10 , 
     height :   60 
  }, 
   middleButtion01 :  { 
     width :   100 , 
     height :   50 , 
     padding :   15 , 
     backgroundColor :   "#fdc453" , 
     borderRadius :   15 , 
     margin :   7 
  }, 
   middleButtion02 :  { 
     width :   100 , 
     height :   50 , 
     padding :   15 , 
     backgroundColor :   "#FF8181" , 
     borderRadius :   15 , 
     margin :   7 
  }, 
   middleButtion03 :  { 
     width :   100 , 
     height :   50 , 
     padding :   15 , 
     backgroundColor :   "#B6F3D7" , 
     borderRadius :   15 , 
     margin :   7 
  }, 
   middleButtion04 :  { 
     width :   100 , 
     height :   50 , 
     padding :   15 , 
     backgroundColor :   "#FDD3FA" , 
     borderRadius :   15 , 
     margin :   7 
  }, 
   middleButtonText :  { 
     color :   "#fff" , 
     fontWeight :   "700" , 
     textAlign :   "center" 
  }, 
   cardContainer :  { 
     marginTop :   10 , 
     marginLeft :   10 
  }, 
   card :  { 
     flex :   1 , 
     flexDirection :   "row" , 
     margin :   10     
  }, 
   cardImage :  { 
     flex :   1 , 
     width :   100 , 
     height :   100 , 
     borderRadius :   10 
  }, 
   cardText :  { 
     flex :   2 , 
     //felxDirection은 디폴트가 colum이라 안 적어도 됨. 
     marginLeft :   10 
  }, 
   cardTitle :  { 
     fontSize :   18 , 
     fontWeight :   '700' 
  }, 
   cardDesc :  { 
     fontSize :   14 
  }, 
   cardDate :  { 
     fontSize :   11 
  } 
   
})