React에서 별 등급 구현
소개
React를 사용하고 별 등급을 구현할 기회가 있었으므로 비망록으로 적습니다.
덧붙여서 이번은 패키지를 일절 사용하고 있지 않기 때문에, 패키지를 사용해 보다 세련된 레이팅을 만들고 싶은 분은 구구라고 봐 주세요.
npm 패키지
완성형
※이것보다 세련된 레이팅을 구현하고 싶은 분은 패키지등의 컴퍼넌트를 구구 해 보세요.
만드는 방법
만드는 방법은 대충 말하면 이런 느낌입니다.
만드는 방법은 대충 말하면 이런 느낌입니다.
코드로 보자.
import React, { useState } from 'react';
export const StarRating: React.FC<> = () => {
const [ratingState, setRatingState] = useState<number>(0);
const stars: boolean[] = [];
for (let i = 0; i > 5; i++) {
if( i < ratingState ) {
stars.push(true);
} else {
stars.push(false);
}
}
const HandleStarShine = (rating) => {
setRatingState( rating + 1 ); // index番号は0~4だから星の数に合わせて1~5にする
};
return (
{stars.map((val: boolean, index: number) => {
return (
<button onClick={() => HandleStarShine(index)} >
{val ? <img src="光る星マーク" /> : <img src="光ってない星マーク"/>
</button>
);
})}
);
};
이런 느낌입니다.
코드에 있는 것처럼 state는 눌린 버튼(별)이 가지고 있는 index 번호의 값으로 갱신됩니다.
요약
글쎄,이 기사의 별 등급은 얼마입니까?
또, 지적 등도 있으면 코멘트를 잘 부탁드립니다.
최근 React를 공부하기 시작했기 때문에, 핸들러에 인수를 건네주는 것이 개인적으로 어려웠습니다만, 지금 생각하면 React의 튜토리얼 웃음) 공부할 뿐입니다 (웃음)
Reference
이 문제에 관하여(React에서 별 등급 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/YusukeTagawa/items/c12e29ff30235042885d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(React에서 별 등급 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YusukeTagawa/items/c12e29ff30235042885d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)