reactjs如何做一个五星评价功能

2024年04月01日 建站教程

reactjs如何实现一个五星评价功能,下面web建站小编给大家详细介绍一下!

js组件代码:

import React,{Component} from 'react'class Star extends Component{
  constructor(props){
  super(props);
    this.state={
      starNum:['star0','star0','star0','star0','star0'] //设置默认背景图
    }
  }

  componentDidMount(){
    //将传过来的类似7.3数字进行四舍五入再除2,得到的是类似2,3.5,6这种值
    this.getStar(Math.round(this.props.star)/2+1); 
  }

  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;

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);
}

代码引用:

<Star star={4.5} />

本文链接:http://so.lmcjl.com/news/881/

展开阅读全文
相关内容