hes*_*eni 2 javascript jsx react-native
我有一个针对用户的个人资料页面,每个用户的使用率从0到5。我想根据用户的排名填充星星。例如,如果用户的费率为4,我需要填写4星,而空白为1星
这是我在render方法中的代码:
<Text>{item.rate}</Text> // here I get the rate from api 0 to 5
<View>
<Icon name="star" color="#9fa1a7" type="solid" size={16}/>
<Icon name="star" color="#9fa1a7" type="solid" size={16}/>
<Icon name="star" color="#9fa1a7" type="solid" size={16}/>
<Icon name="star" color="#9fa1a7" type="solid" size={16}/>
<Icon name="star" color="#ffffff" type="solid" size={16}/>
</View>
Run Code Online (Sandbox Code Playgroud)
由于您的星星数量不会改变,而只会改变颜色,因此请color={item.rate >= X ? 'color on' : 'color off'}在每个图标上使用:
<Text>{item.rate}</Text>
<View>
<Icon name="star" color={item.rate >= 1 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
<Icon name="star" color={item.rate >= 2 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
<Icon name="star" color={item.rate >= 3 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
<Icon name="star" color={item.rate >= 4 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
<Icon name="star" color={item.rate >= 5 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
</View>
Run Code Online (Sandbox Code Playgroud)
或从数组生成恒星以减少重复:
<Text>{item.rate}</Text>
<View>{
[1, 2, 3, 4, 5].map(score =>
<Icon
name="star"
color={item.rate >= score ? '#9fa1a7' : '#ffffff'}
type="solid"
size={16}
/>
)
}</View>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |