Я видел много постов о том, как использовать данные JSON для загрузки в сборщик реагирования.
но всякий раз, когда я получаю доступ к своему json из массива асинхронного хранилища и доступа к транспортным средствам, чтобы добавить его в качестве источника данных для средства выбора, приложение принудительно закрывается с ошибкой
java.lang.ClassCastException: com.facebook.react.bridge.ReadableNativeMap не может быть приведен к java.lang.String.
на com.facebook.react.bridge.ReadableNativeMap.getString (ReadableNativeMap.java:168)
constructor(props){
super(props);
this.state = {
obj: null,
name : '',
email : '',
phone : '',
carbrand : '',
carmodel : '',
appointmentDate : '',
appointmentTime : '',
pickup : false,
workshopNote : '',
loaded: false,
};
}
componentDidMount(){
this._loadServices().done();
}
_loadServices = async () => {
var value = await AsyncStorage.getItem('UserObj');
this.setState({obj: JSON.parse(value)})
//this.setState({userTypes: this.state.obj.vehicles})
this.setState({ loaded: true })
alert(this.state.obj.vehicles.brand)
render() {
if (this.state.loaded){
const selectedItem = this.state.obj.vehicles;
return(
<View style={styles.container}>
....
<Picker
selectedValue={this.state.Year}
onValueChange={(itemValue, itemIndex) => this.setState({ Year: itemValue })} >
{this.state.obj.vehicles.map((item, value) => {
return (<Picker.Item label={item} value={value} key={value} />)
})}
</Picker>
...
</View>
)
}
return this.loading()
}
Может кто-нибудь помочь мне с этим?
p.s - массив json выглядит следующим образом
"vehicles": [
{
"brand": "ASTON MARTIN",
"model": "RAPIDE",
"registration": "Mh 05 AP 866",
"year": "2018"
}
],