J'ai un sélecteur que je teste actuellement sur iOS avec deux options. Chaque fois que je fais glisser la première option vers la deuxième option, le sélecteur revient immédiatement à la première option.
Voici à quoi ressemble le code de mon sélecteur.
<Picker
style={{
width: 100,
}}
selectedValue={(this.state && this.state.pickerValue) || 'a'}
onValueChange={(value) => {
this.setState({value});
}} itemStyle={{color: 'white'}}>
<Picker.Item label={'Hello'} value={'a'} />
<Picker.Item label={'World'} value={'b'} />
</Picker>
Je veux que le sélecteur reste sur l'option nouvellement défilée. J'ai également supprimé le || 'a'
partie de l'attribut selectedValue
mais cela n'a pas non plus résolu le problème.
Lors d'un changement de valeur, vous devez spécifier quelle propriété de l'état a changé et la modifier en conséquence avec this.setState
onValueChange={(value) => {this.setState({pickerValue: value});
Code complet
<Picker
style={{
width: 100,
}}
selectedValue={(this.state && this.state.pickerValue) || 'a'}
onValueChange={(value) => {
this.setState({pickerValue: value});
}} itemStyle={{color: 'white'}}>
<Picker.Item label={'Hello'} value={'a'} />
<Picker.Item label={'World'} value={'b'} />
</Picker>