Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react js中打印星号图标,根据星号(声誉)过滤用户?_Javascript_Reactjs_Algorithm - Fatal编程技术网

Javascript 如何在react js中打印星号图标,根据星号(声誉)过滤用户?

Javascript 如何在react js中打印星号图标,根据星号(声誉)过滤用户?,javascript,reactjs,algorithm,Javascript,Reactjs,Algorithm,我想在react js中打印星星图标,就像在第一行1和第二行2中一样 我试过了 const [userList, setUsersList] = useState([]); const [starClicked, setStarClicked] = useState(); return ( <div className="App"> {[...Array(5)].map((star, idx) => { return

我想在react js中打印星星图标,就像在第一行1和第二行2中一样

我试过了

  const [userList, setUsersList] = useState([]);
  const [starClicked, setStarClicked] = useState();
  return (
   <div className="App">
     {[...Array(5)].map((star, idx) => {
       return (
         <p key={idx} onClick={() => setStarClicked(idx + 1)}>
           <StarOutlinedIcon />
         </p>
       );
     })}

    {starClicked
    ? userList
        .filter((d) => d.stars === starClicked)
        .map((d) => {
          return <li key={d._id}> {d.userName} </li>;
        })
    : userList.map((d) => {
        return <li key={d._id}> {d.userName} </li>;
      })}
const[userList,setUsersList]=useState([]);
const[starClicked,setStarClicked]=useState();
返回(
{[…数组(5)].map((星形,idx)=>{
返回(

setStarClicked(idx+1)}>

); })} {starClicked ?用户列表 .filter((d)=>d.stars===starClicked) .map((d)=>{ 返回
  • {d.userName}
  • ; }) :userList.map((d)=>{ 返回
  • {d.userName}
  • ; })}

    这在过滤部分做得很好,但在垂直线中只打印5颗星。我想在1行中打印1颗星,在第2行中打印2颗星同样

    您需要另一个循环来根据星星的索引渲染星星:

    {[...Array(5)].map((star, idx) => {
        const actualIndex = idx + 1;
    
        return (
            <p key={idx} onClick={() => setStarClicked(actualIndex)}>
                {[...Array(actualIndex)].map((_, starIdx) => (
                    <StarOutlinedIcon key={starIdx} />
                ))}
            </p>
        );
    })}
    
    {[…数组(5)].map((星形,idx)=>{
    const-actualIndex=idx+1;
    返回(
    

    setStarClicked(实现索引)}> {[…数组(实现索引)].map((\ux,starIdx)=>( ))}

    ); })}
    非常感谢你,伙计