👉 2021.11.1 ~ 2021.11.12 -> 2주동안 진행
👉 생각보다 처음 접근방법을 생각할 때 많이 헤멨다ㅠㅠㅠ 그래서 물어도 보고 구글링도 하다가 회원가입&로그인 모달창처럼 기능을 구현해보기로 했다. 결론은??!!! !!!성공!!!
✅ 먼저
isOpenSearcbarTab을 state에서 초깃값 : false로 관리해주고,
event를 걸어서 setState에서 관리해줄 함수updateOpenSearchbarTab을 짰다.
다음, onClick 이벤트에 updateOpenSearchbarTab함수를 걸어주었다.
여기서부터...멘붕🤯 스톼트,,,, 흐오오.... 정말... 많이 물어보았다.... Google선생님한테도... 멘토님한테도... 동기들한테도... 많이 죄송했다ㅠㅠㅠ 그렇지만 재밌었다😱
import React, { Component } from 'react';
import './SearchFile.scss';
import PostCard from './PostCard';
import CategoryButton from './CategoryButton';
export default class ResearchPage extends Component {
constructor() {
super();
this.state = {
POSTER_DATA: {},
};
}
getSearchData = () => {
let { location } = this.props;
fetch(`http://10.58.7.147:8000/movies${location.search}`)
.then(res => res.json())
.then(data => {$
this.setState({
POSTER_DATA: data,
});
});
};
componentDidUpdate(prevProps, _) {
let { location } = this.props;
if (prevProps.location.search !== location.search) {
this.getSearchData();
}
}
componentDidMount() {
this.getSearchData();
}
render() {
const { POSTER_DATA } = this.state;
return (
<div className="searchContainer">
<div className="researchTitle">"해리"의 검색결과</div>
<div className="contentContainer">
<div className="textWrapper">
<CategoryButton title="콘텐츠" />
<CategoryButton title="인물" />
<CategoryButton title="컬렉션" />
<CategoryButton title="유저" />
</div>
</div>
<div className="navigationContainer">
<div className="slideBar">
{POSTER_DATA.message &&
POSTER_DATA.message.movies.map(poster => (
<PostCard
key={poster.id}
img={poster.poster_image_url}
title={poster.title}
released={poster.released_at}
sourced={poster.sources}
rate={poster.ratings}
country={poster.country}
/>
))}
</div>
</div>
</div>
);
}
}
getSearchData = () => {
let { location } = this.props;
fetch(`http://10.58.7.147:8000/movies${location.search}`)
.then(res => res.json())
.then(data => {$
this.setState({
POSTER_DATA: data,
});
});
};
getSearchData = () => {
let { location } = this.props;
fetch(`http://10.58.7.147:8000/movies${location.search}`)
.then(res => res.json())
.then(data => {$
this.setState({
POSTER_DATA: data,
});
});
};
componentDidUpdate(prevProps, _) {
let { location } = this.props;
if (prevProps.location.search !== location.search) {
this.getSearchData();
}
}
componentDidMount() {
this.getSearchData();
}
✏️ 개인적으로 공부도 많이 필요했고, 많이 배워야된다는 생각, 더 많은 공부를 해야되겠다라는 생각들이 컸던 많은 배움이 있었던 1차 프로젝트. 긴 로직을 조금 더 간결하게, 어떻게 하면 더 직관성있게 짜야할지 고민했던 시간들.
✏️ 아직 모든게 낯설고 어려운 용어들이 많은 백엔드와의 소통, 많은것들이 어려웠고 힘들었지만 팀원들과 같이 공부하고 노력했기에 사실 재미있었다.
🔥🔥 아쉬움도 컸고, 재미도 있었던 1차 프로젝트, 내가 지금 공부를 하는게 맞는건지, 내 실력이 늘고 있는건지, 항상 고민했고 힘들었었는데 프로젝트를 진행하면서 남들보다 조금 느리고 보폭이 작지만 한발 한발 내 걸음 속도에 맞게 앞으로 걸어가고 있구나라는 생각이 들었다. 그래서 더 재밌었던 프로젝트였던것 같다. 앞으로는 함께 일하고 싶은 개발자가 되는것을 목표로 조금 더 열심히 꾸준하게 공부 해야겠다라는 다짐을 했다!.
👉 개인적인 집안 사정으로 인해서 2틀정도 프로젝트 참여를 하지 못했다ㅠㅠㅠ 그래서 더 팀원들한테 죄송했고, 그럼에도 항상 동기부여를 해주시고 격려해주시고 응원해주시고 많은 것들을 배우게 해주셔서 너무 감사했다. ❤️🧡💛💚💙💜