更改另一个组件/反应图标中的一个组件

4156

我正在建立一个收视率组件,该组件将包含许多图标并使用来显示它们react-icons但是,我的问题是我想实现的功能。目前,我正在使用的react-iconFaStarhalf是一个预填充的半星,我将其翻转以产生创建半星的错觉。这很容易使用,并且可以完成我需要做的事情,但是,我想在选择星星时实现一种更好的显示方式。不幸的是,react-icons我似乎没有能力完全填充图标。FaRegStarHalf是另一个react-icons基本上从星星中切出的成分,但是您不能填充它。

所以我对你的问题。FaStarHalf单击组件后,是否有可能将组件中的每个组件从更改FaStarHalf为填充的组件react-icons我可以从内部将组件更改为其他组件吗?

Rater

import React, { useState } from 'react'
import { FaStarHalf } from 'react-icons/fa'

import './styles/Rater.css'

const Rater = ({ iconCount }) => {
    const [rating, setRating] = useState(null)
    const [hover, setHover] = useState(null)
    return (
        <div>
            {[...Array(iconCount), ...Array(iconCount)].map((icon, i) => {
                const value = (i + 1) / 2

                return (
                    <label>
                        <input
                            type='radio'
                            name='rating'
                            value={value}
                            onClick={() => {
                                console.log(`value => `, value)
                                return setRating(value)
                            }}
                        />
                        <div className='star-container'>
                            <div>
                                <FaStarHalf
                                    className={i % 2 ? 'star-left' : 'star'}
                                    color={value <= (hover || rating) ? '#ffc107' : '#e4e5e9'}
                                    onMouseEnter={() => setHover(value)}
                                    onMouseLeave={() => setHover(null)}
                                />
                            </div>
                        </div>
                    </label>
                )
            })}
        </div>
    )
}

export default Rater
FaHalfStar

在此处输入图片说明

FaRegHalfStar

在此处输入图片说明

凯西

没有看到您正在使用的数据看起来很难回答,但我会尝试一下。我假设您想要的是当用户单击星星以将评分设置为1到5之间时,您想要以实心星星的形式向他们显示其评分。如果是这种情况,您可以rating用来确定是向用户显示当前等级还是他们所设置的等级,然后根据需要使用适当的图标。

可以通过将适当的字符串设置为变量,然后使用该字符串代替图标JSX标记名称来实现。基本上,如果用户设置了评分,rating它将不再是null,您可以断言您需要填充星。使用该逻辑将变量分配给所需的字符串。const Star = rating ? 'FaStar' : 'FaHalfStar'

import React, { useState } from 'react'
import { FaStarHalf, FaStar } from 'react-icons/fa'

import './styles/Rater.css'

const Rater = ({ iconCount }) => {
    const [rating, setRating] = useState(null)
    const [hover, setHover] = useState(null)
    // check if user has set a rating by clicking a star and use rating to determine icons
    const Star = rating ? 'FaStar' : 'FaHalfStar'

return (
    <div>
        {[...Array(iconCount), ...Array(iconCount)].map((icon, i) => {
            const value = (i + 1) / 2              
            
            return (
                <label>
                    <input
                        type='radio'
                        name='rating'
                        value={value}
                        onClick={() => {
                            console.log(`value => `, value)
                            return setRating(value)
                        }}
                    />
                    <div className='star-container'>
                        <div>
                            // Use 'Star' variable here which is assigned 'FaStar' or 'FaHalfStar' and will display a half star or a full star
                            <Star
                                className={i % 2 ? 'star-left' : 'star'}
                                color={value <= (hover || rating) ? '#ffc107' : '#e4e5e9'}
                                onMouseEnter={() => setHover(value)}
                                onMouseLeave={() => setHover(null)}
                            />
                        </div>
                    </div>
                </label>
            )
        })}
    </div>
)
}

export default Rater
FaHalfStar

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在反应中如何调用另一个组件中的一个组件?

来自分类Dev

反应中另一个组件的setStatus

来自分类Dev

从另一个文件中的另一个组件更改一个组件的状态

来自分类Dev

从另一个文件中的另一个组件更改一个组件的状态

来自分类Dev

从另一个组件反应JS渲染组件

来自分类Dev

无法从另一个组件导入反应组件

来自分类Dev

更改另一个组件中的状态

来自分类Dev

更改另一个组件时反应重新渲染组件

来自分类Dev

如何从一个组件调用另一个组件的函数?反应

来自分类Dev

在另一个组件内调用一个组件(反应)

来自分类Dev

如何从一个组件访问状态值到另一个文件中的另一个函数(不是组件)?反应 js

来自分类Dev

如何在React Native中从另一个功能组件更改一个功能组件的状态?

来自分类Dev

如何在另一个组件中使用一个组件的状态?独立组件(反应)

来自分类Dev

从另一个屏幕更改组件

来自分类Dev

动态将反应组件插入另一个反应组件

来自分类Dev

在.map内部进行onClick反应,然后在另一个同级组件中更改数据

来自分类Dev

在ReactJS中,如何在另一个组件中渲染一个组件?

来自分类Dev

在 React 中的另一个组件中动态渲染一个组件

来自分类Dev

绘制另一个组件

来自分类Dev

参考另一个组件

来自分类Dev

如何在React中从另一个组件设置一个组件的状态

来自分类Dev

将一个组件传递到props数组中的另一个组件

来自分类Dev

从vue.js中的另一个组件调用一个组件

来自分类Dev

在另一个组件中修改一个组件模板的 CSS

来自分类Dev

在另一个组件中反应JS参考函数

来自分类Dev

反应:将TextField值传递给另一个组件中的Table调用

来自分类Dev

在另一个组件V6中反应路由

来自分类Dev

在另一个组件中反应JS参考函数

来自分类Dev

如何在反应中从另一个组件调用函数

Related 相关文章

  1. 1

    在反应中如何调用另一个组件中的一个组件?

  2. 2

    反应中另一个组件的setStatus

  3. 3

    从另一个文件中的另一个组件更改一个组件的状态

  4. 4

    从另一个文件中的另一个组件更改一个组件的状态

  5. 5

    从另一个组件反应JS渲染组件

  6. 6

    无法从另一个组件导入反应组件

  7. 7

    更改另一个组件中的状态

  8. 8

    更改另一个组件时反应重新渲染组件

  9. 9

    如何从一个组件调用另一个组件的函数?反应

  10. 10

    在另一个组件内调用一个组件(反应)

  11. 11

    如何从一个组件访问状态值到另一个文件中的另一个函数(不是组件)?反应 js

  12. 12

    如何在React Native中从另一个功能组件更改一个功能组件的状态?

  13. 13

    如何在另一个组件中使用一个组件的状态?独立组件(反应)

  14. 14

    从另一个屏幕更改组件

  15. 15

    动态将反应组件插入另一个反应组件

  16. 16

    在.map内部进行onClick反应,然后在另一个同级组件中更改数据

  17. 17

    在ReactJS中,如何在另一个组件中渲染一个组件?

  18. 18

    在 React 中的另一个组件中动态渲染一个组件

  19. 19

    绘制另一个组件

  20. 20

    参考另一个组件

  21. 21

    如何在React中从另一个组件设置一个组件的状态

  22. 22

    将一个组件传递到props数组中的另一个组件

  23. 23

    从vue.js中的另一个组件调用一个组件

  24. 24

    在另一个组件中修改一个组件模板的 CSS

  25. 25

    在另一个组件中反应JS参考函数

  26. 26

    反应:将TextField值传递给另一个组件中的Table调用

  27. 27

    在另一个组件V6中反应路由

  28. 28

    在另一个组件中反应JS参考函数

  29. 29

    如何在反应中从另一个组件调用函数

热门标签

归档