[RN] react-native Random Array - 랜덤배열 만들기

2024. 6. 10. 10:13·React Native
반응형
반응형

🐰: 기획팀에서 익명 게시판에서 컴포넌트가 마운트 될 때 마다

유저 프로필 이미지가 랜덤으로 노출되는 기능을 요청주셨다.

 

    //랜덤 이미지
    const [randomImage, setRandomImage] = useState('');

    useEffect(() => {
      const myImages = [
        {image: require('../../assets/images/baseballLife/random-image1.png')},
        {image: require('../../assets/images/baseballLife/random-image2.png')},
        {image: require('../../assets/images/baseballLife/random-image3.png')},
        {image: require('../../assets/images/baseballLife/random-image4.png')},
        {image: require('../../assets/images/baseballLife/random-image5.png')},
        {image: require('../../assets/images/baseballLife/random-image6.png')},
      ];
      const randomImageIndex = Math.floor(Math.random() * myImages.length);
      setRandomImage(myImages[randomImageIndex].image);
    }, []);
 
 
 
    
    //이미지가 출력되는 곳
   <Photo
     w={60}
     h={60}
     radius={60}
     source={randomImage}
   />

 

 

코드해석
 const [randomImage, setRandomImage] = useState('');


randomImage라는 상태와 이 상태를 업데이트하는 setRandomImage 함수를 useState('')를 사용하여 초기화한다. 이 상태는 랜덤 이미지의 경로를 저장한다.

 

useEffect(() => {
      const myImages = [
        {image: require('이미지경로/random-image1.png')},
        {image: require('이미지경로/random-image2.png')},
        {image: require('이미지경로/random-image3.png')},
        {image: require('이미지경로random-image4.png')},
        {image: require('이미지경로/random-image5.png')},
        {image: require('이미지경로/random-image6.png')},
      ];
      const randomImageIndex = Math.floor(Math.random() * myImages.length);
      setRandomImage(myImages[randomImageIndex].image);
    }, []);


- useEffect 훅을 사용하여 컴포넌트가 처음 렌더링될 때 한 번 실행되도록 설정합니다. 빈 배열 []이 전달되었으므로, 이 useEffect는 컴포넌트가 처음 렌더링될 때만 실행된다.

- myImages라는 배열은 6개의 이미지 객체를 포함하고 있습니다. 각 이미지 객체에는 image라는 키가 있으며, 해당 이미지의 경로가 값으로 지정되어 있습니다.

- Math.random() 함수를 사용하여 배열 myImages에서 랜덤하게 이미지를 선택한다. Math.random()은 0부터 1 사이의 난수를 생성하므로, 배열의 길이를 곱하고 Math.floor() 함수를 사용하여 소수점을 버림으로써 배열 인덱스를 얻을 수 있다.

- 선택된 랜덤 이미지의 경로를 setRandomImage 함수를 호출하여 randomImage 상태에 설정합니다. 이렇게 함으로써, 컴포넌트가 렌더링될 때 선택된 랜덤 이미지를 화면에 표시할 수 있습니다.

 

   //이미지 출력되는 곳
   <Photo
     w={60}
     h={60}
     radius={60}
     source={randomImage}
   />


마지막으로 이미지가 출력되는 Photo라이브러리의 source에 연결을 시켜주면 컴포넌트가 마운트 될때마다 6개의 이미지가 랜덤으로 출력된다 !

 

 

반응형

'React Native' 카테고리의 다른 글

[RN] react-native Pull Down refresh  (0) 2024.06.13
[RN] react-native 'Attempt to invoke virtual method ~' error (Android)  (0) 2024.06.10
[RN] react-native Gradient -그라데이션  (2) 2024.06.07
[RN] react-native Code Push  (0) 2024.06.04
[RN] react-native 키보드 가림현상 - iOS  (0) 2024.05.29
'React Native' 카테고리의 다른 글
  • [RN] react-native Pull Down refresh
  • [RN] react-native 'Attempt to invoke virtual method ~' error (Android)
  • [RN] react-native Gradient -그라데이션
  • [RN] react-native Code Push
nicee
nicee
답을 찾아가는 과정이 즐거운 프론트엔드 개발자의 기록모음🧐
    반응형
  • nicee
    나의 개발일지
    nicee
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Project01 [Chat App]
      • React Native
      • Git
      • Program Setting
      • nicee-day
      • Study
        • C++
  • 블로그 메뉴

    • 링크

      • 🌳 git키우기
      • 📚 일상기록
    • 공지사항

    • 인기 글

    • 태그

      c++
      채팅앱
      error
      React-native
      firebase
      nextjs
      불금
      IOS
      에러해결
      공부
      빌드에러
      next.js
      티스토리챌린지
      리액트네이티브
      백준코딩테스트
      k직장인
      리액트
      Android
      타입스크립트
      커피수혈
      APP
      rn
      k직장인일상
      typescript
      앱개발
      Xcode
      React
      직장인짤
      오블완
      app build
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    nicee
    [RN] react-native Random Array - 랜덤배열 만들기
    상단으로

    티스토리툴바