在本机Picker中禁用Picker.item

时间:2018-03-15 09:45:27

标签: javascript react-native

在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 个答案:

答案 0 :(得分:1)

不,如果Picker,您无法取消选择SelectedItem,而是可以选择其他选项。但是你对react-native的Picker没有任何期望。要么创建自己的库,要么创建其他库。