#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. Плюс есть явное замечание относительно
=>
.