Оценка логики реагирования

#reactjs

#reactjs

Вопрос:

Я просматриваю учебное пособие и не могу понять логику, лежащую в основе части рейтинга, в которой будут показаны некоторые звезды в соответствии с номером рейтинга. Например, рейтинг составляет около 4,5, звезды будут равны 4 с половиной звездам.

 const Rating = ({ value, text }) => {
    return (
        <div class="flat-star style-1">
            <i className={value >=1 ? 
                'fa fa-star' : 
                value >= 0.5 
                ? 'fa fa-star-half-o' 
                : 'fa fa-star-o' 
            }></i>

         <i className={value >=2 ?  
                'fa fa-star' : 
                value >= 1.5 
                ? 'fa fa-star-half-o' 
                : 'fa fa-star-o' 
            }></i>

<i className={value >=3 ?  
                'fa fa-star' : 
                value >= 2.5 
                ? 'fa fa-star-half-o' 
                : 'fa fa-star-o' 
            }></i>

<i className={value >=4 ?  
                'fa fa-star' : 
                value >= 3.5 
                ? 'fa fa-star-half-o' 
                : 'fa fa-star-o' 
            }></i>

<i className={value >= 5 ?  
                'fa fa-star' : 
                value >= 4.5 
                ? 'fa fa-star-half-o' 
                : 'fa fa-star-o' 
            }></i>  
            
           <span>({text amp;amp; text})</span>
        </div>
    )
}
  

Кто-нибудь может объяснить мне эту строку в строке с точки зрения непрофессионала? Извините, новичок здесь.

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

1. из какого учебника это взято?

Ответ №1:

Итак, у вас есть пять i элементов, каждый из которых соответствует звезде, и логика выглядит следующим образом:

для данного value мы проверим все пять звезд, начиная с первой:

 <i className={value >=1 ? 
            'fa fa-star' : 
            value >= 0.5 
            ? 'fa fa-star-half-o' 
            : 'fa fa-star-o' 
        }></i>
  

давайте сначала проанализируем это i :

1- если value >= 1 тогда дайте ему имя класса fa fa-star , которое является полной звездой.

2- else, если value меньше 1 , но больше или равно 0.5 , тогда дайте ему имя класса fa fa-star-half-o , равное половине звезды.

таким образом, он всегда отображает половину звезды, между и нет процентной звезды 0.5 1 .

3- else, если value меньше, чем 0.5 тогда дайте ему className fa fa-star-o , который является пустой звездой.

таким образом, он всегда отображает пустую звезду, между и нет процентной звезды 0 0.5 .

и так далее для всех остальных четырех звезд. Я надеюсь, что это имеет смысл для вас.