在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>);
}
}
答案 0 :(得分:1)
不,如果Picker
,您无法取消选择SelectedItem,而是可以选择其他选项。但是你对react-native
的Picker没有任何期望。要么创建自己的库,要么创建其他库。