禁用React Native Picker中的Picker.item

3
在HTML中,您可以有被禁用的<select>选项。在iOS上,本机选择器以一种方式实现,如果用户尝试选择被禁用的项目,则自动取消选择它。
react-native Picker是否也实现了相同的行为?
我目前只是从选择器中删除选项而不是禁用它们。然而,这会导致令人困惑的动画效果,我希望避免这种情况:
render() {
  return (
    <ScrollView showsVerticalScrollIndicator={false} >
      <View>
        {this.state.answers.map((obj, i) => (
          <View key={i}>
            <Picker
              selectedValue={'question' in this.state.answers[i] ? this.state.answers[i].question : -1}
              onValueChange={itemValue => this.setQuestion(i, itemValue)}
            >
              <Picker.Item label="-- pick a question --" value={-1} />
              {
                this.state.questions.map((question, j) => {
                  const alreadyPickedElswhere = this.state.answers.some(a => a.question === question.pk) && this.state.answers[i].question !== question.pk;
                  return (!alreadyPickedElswhere ? <Picker.Item label={question.text} value={question.pk} key={j} /> : null);
                })
                }
            </Picker>
          </View>))
          }
      </View>
    </ScrollView>);
}

}

1个回答

1

Picker中,不可以取消已选择的项,只能选择其他选项。但是,无法实现你对react-native Picker的期望。要么自己创建一个组件,要么使用其他库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接