«значение» объявлено, но его значение никогда не считывается.ts(6133)

#reactjs

Вопрос:

 const Rating = ( { value , text}) => {
    return (
        <div className='rating'>
            <span>
                <i className={ value => 1 ? 'fas fa-star' :value=>0.5?'fas fa-star-half-alt' : 'far fa-star'}></i>
            </span>
            <span>
                <i className={value =>2 ? 'fas fa-star' :value=>1.5?'fas fa-star-half-alt' : 'far fa-star'}></i>
            </span>
            <span>
                <i className={value=>3? 'fas fa-star' :value=>2.5?'fas fa-star-half-alt' : 'far fa-star'}></i>
            </span>
            <span>
                <i className={value => 4? 'fas fa-star' :value=>3.5?'fas fa-star-half-alt' : 'far fa-star'}></i>
            </span>
            <span>
                <i className={value => 5? 'fas fa-star' :value=>4.5?'fas fa-star-half-alt' : 'far fa-star'}></i>
            </span>
            <span>{textamp;amp; text}</span>
        </div>
    )
}
 

Комментарии:

1. не могли бы вы уточнить вопрос?

2. Я найду dupetarget, но в основном вы создали функцию со стрелкой, а не проводили сравнение. Использовать >= , нет => . value => 1 ? x : y создает функцию, принимающую value параметр и возвращающую результат 1 ? x : y (который является значением x ). Ты хочешь value >= 1 ? x : y .

3. А еще лучше, извлеките дублирующуюся логику и сделайте это более приятным для чтения 🙂

Ответ №1:

Я думаю, что решение простое, вы неправильно используете оператор больше или равно. >= не равно =>

 <span>
  <i className={ value >= 1 ? 'fas fa-star' :value >=0.5?'fas fa-star-half-alt' : 'far fa-star'}></i>
</span>

 

Я думаю, это должно сработать.
Чтобы узнать больше об операторах, вы можете найти его здесь

Комментарии:

1. В общем, для документов JS лучше ссылаться на что-то вроде документов обзора реляционных операторов MDN , чем на w3schools. Плюс есть явное замечание относительно => .