из кода, который вы указали в своем вопросе, я думаю, вы новичок в реагировании Ваш код неверен (вы только что скопировали и вставили код). эта часть selectedValue={this.state.language}
в вашем Picker
неверна, потому что в вашем state
нет language
.
представьте, что у вас есть Picker
, в котором есть список городов. и у вас есть переменная в состоянии с именем selectedCity
.
так что ваш сборщик будет выглядеть так:
<Picker
selectedValue={this.state.selectedCity}
onValueChange={(itemValue, itemIndex) =>
this.setState({ selectedCity: itemValue })
}
>
<Picker.Item label="city1" value="1" />
<Picker.Item label="city2" value="2" />
</Picker>
это создаст Picker
список 2 городов (city1 - city2), и каждый раз, когда пользователь выбирает один из них, будет вызываться this.setState()
и инициализация selectedCity
в состоянии.
если вы хотите вызвать setState
в другом методе, вместо
onValueChange={(itemValue, itemIndex) =>
this.setState({ selectedCity: itemValue })
}
использование
onValueChange={(itemValue, itemIndex) =>
//call method here!
}