: 메인 페이지에는 상단의 네비게이션바, 인스타스토리, 피드, 추천목록 등이 존재한다.
const { profileList, feedList, loginName } = this.state;
아래 구조분해 할당이 된 코드를 보여줄 예정이므로 생략된 내용들에는 참고 바람.
: 좌측 상단에 존재하는 친구 목록에 해당한다. 클릭했을때 스토리로 들어가지지는 않는다.
그럼에도 버튼으로 만든 이유는 클릭했을 때 정렬 순서를 바꾸기 위함인데 아직 못만들었다.
//Main.js : 메인 컴포넌트의 렌더 내부의 자식컴포넌트인 'StoryList' 부분
<button className='storyDataList'>
{profileList
.filter((ele) => ele.group === 'follow')
.map((ele, index) => (
<StoryList // StoryList 컴포넌트
list={ele}
index={{ index }}
onDelete={'수정중'}/>
))}
</button>
팔로우로 구분된 계정들만
스토리에 보여주기 위해 filter
메서드를 이용하였다.Map
메서드를 이용하여 라는 컴포넌트를 반복해서 만들어내었다: 좌측 하단의 게시글 리스트이다.
//Main.js : 메인 컴포넌트의 렌더 내부의 자식컴포넌트인 'FeedList' 부분
{feedList
.sort((ele1, ele2) => ele1.postTime - ele2.postTime)
.map((ele) => (
<FeedList
feed={ele}
profile={profileList.filter((ele) => ele.account === loginName)}/>
))}
sort
메서드를 사용했다.loginName
state는 아래와 같다. getAccountName = () => {
this.setState({ loginName: this.props.history.location.state.name });
};
: 우측 상단의 계정 정보 부분이다.
//Main.js : 메인 컴포넌트의 렌더 내부의 자식컴포넌트인 'Myprofile' 부분
{profileList
.filter((ele) => ele.account === loginName)
.map((ele) => (
<Myprofile profile={ele} />
))}
profileList
state에서 로그인한 계정과 동일한 데이터 객체를 가져와서 Myprofile 컴포넌트로 전달해줍니다.filter
를 사용했다.: 우측 하단의 추천 친구 리스트 부분입니다.
//Main.js : 메인 컴포넌트의 렌더 내부의 자식컴포넌트인 'RecommendList' 부분
<RecommendList
list={profileList.filter((ele) => ele.group === 'unfollow')}/>
filter
를 사용했다.to be continue.... 자식 컴포넌트리뷰는 여기서 계속