评级不选择超过 3 星 - React Native Elements - 评级)

Posted

技术标签:

【中文标题】评级不选择超过 3 星 - React Native Elements - 评级)【英文标题】:Rating not choosing more than 3 stars - React Native Elements - Rating) 【发布时间】:2019-04-13 23:51:10 【问题描述】:

我正在使用 react-native-elements 组件中的 Rating Element。我注意到我不能为我的评分选择多于/少于 3 星,我不明白为什么。 这是我的代码:

<Modal animationType="slide" transparent=false
                visible=this.state.showModal
                onDismiss=() => this.openModal()
                onRequestClose=() => this.openModal()>
                <View style=styles.modal>
                    <Text style=styles.modalTitle>Rating</Text>
                    <Rating
                        showRating
                        type="star"
                        imageSize=30
                        onFinishRating=this.ratingCompleted
                        style= paddingVertical: 10 
                    />

                    <View style=styles.btnView>
                        <Button
                            onPress=() =>  this.handleFormSubmit() 
                            color="#512DA8"
                            title="Submit"
                            style=styles.formBtn
                        />
                        <Button
                            onPress=() =>  this.openModal(); 
       this.resetForm(); 
                            color="gray"
                            title="Cancel"
                        />
                    </View>
                </View>
            </Modal>

我做错了什么?

【问题讨论】:

【参考方案1】:

根据,

https://react-native-training.github.io/react-native-elements/docs/rating.html#ratingcount

您可以使用道具ratingCount 设置要显示的评分图像的数量。 尝试将此设置为 3 以外的其他值。

编辑

似乎我误解了查询,请尝试将readonly 明确设置为false

【讨论】:

ratingCount 是 5。它显示的是 5 颗星。问题是,它不允许评分少于/多于 3 星。即无论我点击哪颗星,只有 3 颗阴影星【参考方案2】:

我建议使用 AirbnbRating 而不是 Rating,因为它对我有用。

示例代码:

import AirbnbRating  from 'react-native-elements';

<AirbnbRating
  count=11
  reviews=["Terrible", "Bad", "Meh", "OK", "Good", "Hmm...", "Very Good", "Wow", "Amazing", "Unbelievable", "Jesus"]
  defaultRating=11
  size=20
onFinishRating=rating => console.log(rating)
/>

【讨论】:

这给了Animated: `useNativeDriver` was not specified. This is a required 'option and must be explicitly set to `true` or `false【参考方案3】:

我想问你有什么功能

onFinishRating=this.ratingCompleted

我也在我的项目中使用了这个组件并更新了那里的状态:

        <Rating
          showRating
          startingValue=4
          onFinishRating=rating => this.setState( rating: rating )
        />

【讨论】:

【参考方案4】:

在返回评分的函数中移动评分组件:

注意:这有点奇怪,但对我有用

如下更改您的代码:

const RatingView=()=>
   return (
            <Rating
                showRating
                type="star"
                imageSize=30
                onFinishRating=this.ratingCompleted
                style= paddingVertical: 10 
             />
   )

你的模态:

<Modal animationType="slide" transparent=false
                visible=this.state.showModal
                onDismiss=() => this.openModal()
                onRequestClose=() => this.openModal()>
                <View style=styles.modal>
                    <Text style=styles.modalTitle>Rating</Text>
                    <RatingView /> // Here ...

                    <View style=styles.btnView>
                        <Button
                            onPress=() =>  this.handleFormSubmit() 
                            color="#512DA8"
                            title="Submit"
                            style=styles.formBtn
                        />
                        <Button
                            onPress=() =>  this.openModal(); 
       this.resetForm(); 
                            color="gray"
                            title="Cancel"
                        />
                    </View>
                </View>
            </Modal>

【讨论】:

以上是关于评级不选择超过 3 星 - React Native Elements - 评级)的主要内容,如果未能解决你的问题,请参考以下文章

如何在Flash中制作愤怒的小鸟评分类型“三颗星评级”?

5 星评级不会通知 UITableView 更新值;自定义 UIView 类的作品

如何设置评级星并获得离子V2的价值?

按 5 星评级排序的更好方法是啥?

2018左其盛差评榜(截至7月6日)

如何在 swift 中使用 cosmos 评级控制器显示半星评级?