const likeCountUp = () => {
setDetailData(prevData => {
prevData.isLike = !prevData.isLike;
prevData.isLike ? prevData.like_count++ : prevData.like_count--;
return { ...prevData };
});
};
import { Link } from 'react-scroll';
<Link to="3" spy={true} smooth={true}>
</Link>
<S.ProjectOptionMain id="3">
if (detailData.target_amount) {
totalPrice = total_amount.toLocaleString('ko-KR', {
style: 'currency',
currency: 'KRW',
});
discount = (total_amount / target_amount).toLocaleString('ko-KR', {
style: 'percent',
});
targetAmount = target_amount.toLocaleString('ko-KR', {
style: 'currency',
currency: 'KRW',
});
}
const [checkInfo, setCheckInfo] = useState({
cleanOcean: '',
worldPeace: '',
greenVision: '',
});
const handleChecked = e => {
const { name, checked } = e.target;
setCheckInfo({ ...checkInfo, [name]: checked });
};
const likeCountUp = () => {
setDetailData(prevData => {
prevData.isLike = !prevData.isLike;
prevData.isLike ? prevData.like_count++ : prevData.like_count--;
return { ...prevData };
});
};
제일 고민 많았던 부분으로는 이번 프로젝트의 상세페이지는 결제페이지로 넘어가지 않아 백엔드와 GET으로만 통신을 진행하여 큰 어려움은 없었지만 그래서 인지 더욱 리팩토링에 대해 고민을 많이 했었다.
그중 첫째는 불필요 state 삭제 였고 기존 좋아요 버튼 구현시엔 boolean 값을 넣은 state를 만들어 아이콘을 변경하는 식으로 했었으나, 이번에는 받아온 Data에 새로운 isLike라는 key를 만들어 클릭시 true/false 값이 바뀔수 있게 사용을 하였다.
이번 프로젝트는 초반 계획부터 큰 차질 없이 진행되었지만 아쉬운 점을 꼽자면 추가기능 구현을 못하고 넘어간 부분이다. 내가 맡았던 상세페이지 자체가 큰 기능 구현은 없었던 터라 레이아웃과 기능구현을 끝내고 추가기능 구현을 진행했어야 했는데 못한 아쉬움이 있다.
다른 Blocker 로는 Post의 프로젝트 올리기 기능으로 작성된 프로젝트가 메인페이지와 상세페이지에서 보여야 하지만 Post - 백엔드 -Main -Detail 가 세세한 커뮤니케이션을 하지 못해 메인페이지에서 보여야할 썸네일이 나오지 않은 부분이 아쉬웠다. 커뮤니케이션의 중요함을 다시금 느낄수 있었으며 이러한 상황이 발생되지 않기위해 더욱더 디테일한 소통을 해야한다고 느꼈다.
이번 프로젝트는 1차때와는 다르게 단순 클론 코딩이 아닌 나름대로의 리모델링으로 기존 사이트와는 다른 색깔을 가지도록 진행을 하였었다. 팀원들과의 적극적인 커뮤니케이션으로 나온 아이디어로 첫 프로젝트보단 계획과 구성에서도 고민이 많이 들어갔었다. 모두가 주도적으로 소통해서 나온 결과물이라고 생각을 하고 앞으로 있을 여러 프로젝트들에도 많은 영향을 줄 수 있는 프로젝트였다고 생각한다.