реагировать на ошибку выбора родного средства выбора, когда источник данных взят из массива json - PullRequest
0 голосов
/ 28 апреля 2018

Я видел много постов о том, как использовать данные 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"
                }
            ],
...