React에서 별 5개 평가를 구현하는 방법: 1. 5개의 요소를 설정하고 점수에 따라 다양한 스타일을 부여하고 "starNum:['star0','star0','star0','star0과 같은 코드를 구현합니다. ','star0'] ..."; 2. 두 요소를 설정하고 점수에 따라 하위 요소의 너비를 설정하여 상위 요소의 배경 이미지를 차단합니다. 구현 코드는 "let num=(Math .round(this.props.star)/2).. ."
이 튜토리얼의 운영 환경: Windows 10 시스템, 반응 버전 18.0.0, Dell G3 컴퓨터.
React에서 별 5개 리뷰를 구현하는 방법
React 구성 요소 캡슐화: 별 5개 리뷰 표시
3.7 및 7.8과 같은 평점을 기반으로 별 5개 리뷰를 표시하는 두 가지 간단한 방법
React로 캡슐화 그게 다입니다
첫 번째 아이디어: 다섯 개의 요소를 설정하고 점수에 따라 다양한 스타일을 제공합니다. 두 번째 아이디어: 두 개의 요소를 설정하면 상위 요소에 무색의 다섯개 별이 부여되고, 등급은 상위 요소의 배경 이미지를 덮도록 하위 요소의 너비를 설정합니다
방법 1: 다양한 등급에 따라 다른 CSS 스타일을 설정합니다
세 가지 배경 이미지: star0.png, star1.png, star2.png
1) CSS 코드: 필요에 따라 스타일을 수정할 수 있습니다.
.star{ display: inline-block; }.star>span{ display: inline-block; width: 10px; height: 10px; background-size: 10px 10px; }.star0{ background-image: url(img/star0.png); }.star1{ background-image: url(img/star1.png); }.star2{ background-image: url(img/star2.png); }
2) 컴포넌트 js 코드:
import React,{Component} from 'react'class Star extends Component{ constructor(props){ super(props); this.state={ starNum:['star0','star0','star0','star0','star0'] //设置默认背景图 } } componentDidMount(){ this.getStar(Math.round(this.props.star)/2+1); //将传过来的类似7.3数字进行四舍五入再除2,得到的是类似2,3.5,6这种值 } getStar(num){ let newStar = this.state.starNum.map((item)=>{ //当num=3.5时遍历后newStar数组变成['star2','star2','star2','star1','star0','star0'] --num; return num>=1?'star2':((num>0)?'star1':'star0'); //两次三目运算 }) this.setState({ starNum:newStar //设置state为遍历后的新数组 }) } render(){ return (<span className="star"> { this.state.starNum.map((item, index)=>{ return <span className={item} key={index}></span> }) } </span>) } } export default Star;
3) 다른 구성 요소에서 Star 구성 요소를 호출하고 매개 변수를 전달합니다.
<Star star={4} />
页面显示为:
<em id="__mceDel"><em id="__mceDel"><Star star={7.3} /></em></em>
페이지는 로 표시됩니다.
페이지는 다음과 같이 표시됩니다. 이 방법에는 소량의 계산이 필요합니다.
방법 2: 하위 요소의 너비를 사용하여 상위 요소 차단상위 요소의 배경 이미지는 무색의 다섯개 별이고, 하위 요소의 배경 이미지는 색칠된 다섯개 별
.newstar ul{ background-image: url(component/img/ico.png); }.newstar ul li{ height: 60px; background: url(component/img/ico.png) left -62px; }
구성요소 js 코드:
import React,{Component} from 'react'class Star extends Component{ render(){ let num=(Math.round(this.props.star)/2)*20+'%'; //根据评分计算子元素的宽度 return (<div className="newstar"> <ul> <li style={{width:num}}></li> </ul> </div>) } } export default Star;
3) 호출 및 전달 매개변수 <별별={4} /> ; 페이지 는
로 표시됩니다: 🎜🎜이 방법을 사용하려면 상위 및 하위 요소의 배경 이미지가 정확히 일치해야 합니다. 동일한 크기와 다섯개 별의 수에 해당하는 하위 요소의 너비를 정확하게 계산해야 합니다🎜🎜추천 학습: "🎜 반응 비디오 튜토리얼🎜》🎜위 내용은 반응에서 별 5개 평가를 달성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!