📜  如何在 ReactJS 中创建评分组件?

📅  最后修改于: 2022-05-13 01:56:21.676000             🧑  作者: Mango

如何在 ReactJS 中创建评分组件?

以下方法介绍了如何在 React JS 中创建评级组件。

先决条件:

  • npm & create-react-app 命令的基础知识。
  • 样式组件的基本知识。
  • useState() React hooks 的基础知识。

基本设置:您将使用create-react-app命令启动一个新项目:

npx create-react-app react-rating

现在通过在终端中输入给定的命令转到您的react-rating文件夹。

cd react-rating

所需模块:通过在终端中键入给定命令来安装此项目所需的依赖项。

npm install --save styled-components
npm install --save react-icons

现在在 src 中创建components文件夹,然后转到 components 文件夹并创建两个文件Rating.jsRatingStyles.js

项目结构:项目中的文件结构将如下所示。

示例:在此示例中,我们将设计一个评分组件,为此我们需要操作 App.js 文件和其他创建的组件文件。

我们创建一个状态,第一个元素 rate 作为初始状态,值为 0,第二个元素作为函数setRate()用于更新状态。从 0 到 4 的索引号被分配给新初始化的变量givenRating加 1。在使用映射数组时 Map() 方法,我们将 givenRating 变量的值与五个单选按钮中的每一个相关联(例如,第一个按钮为 1,依此类推)。

我们在onClick函数的帮助下更新状态值,该函数在调用时将其值设置为 givenRating。例如,如果我们点击第 4 颗星(从左起),我们知道与这颗星(或单选按钮)关联的 givenRating 的值为 4。这个 4 的值被分配给我们的状态。现在条件运算符的作用开始发挥作用。只有那些值等于或小于 4 的单选按钮被选中(或更改它们的颜色)。因此,我们获得了四星评级。

Rating.js
import React, { useState } from "react";
import { FaStar } from "react-icons/fa";
import { Container, Radio, Rating } from "./RatingStyles";
const Rate = () => {
  const [rate, setRate] = useState(0);
  return (
    
      {[...Array(5)].map((item, index) => {
        const givenRating = index + 1;
        return (
          
        );
      })}
    
  );
};
  
export default Rate;


RatingStyles.js
import styled from 'styled-components';
  
export const Container = styled.div`
   display: flex;
   justify-content: center;
   align-items: center;
   min-height: 60vh;
   font-size: 60px;
`
export const Radio = styled.input`
   display: none;
`
export const Rating = styled.div`
   cursor: pointer;
`


App.js
import './App.css';
import Rating from './components/Rating';
  
function App() {
  return (
     
  );
}
  
export default App;


RatingStyles.js

import styled from 'styled-components';
  
export const Container = styled.div`
   display: flex;
   justify-content: center;
   align-items: center;
   min-height: 60vh;
   font-size: 60px;
`
export const Radio = styled.input`
   display: none;
`
export const Rating = styled.div`
   cursor: pointer;
`

应用程序.js

import './App.css';
import Rating from './components/Rating';
  
function App() {
  return (
     
  );
}
  
export default App;

运行应用程序的步骤:从项目的根目录使用以下命令运行应用程序:

npm start

输出:现在打开浏览器并转到http://localhost:3000/ ,您将看到以下输出: