如何从json react-native-material-dropdown获取ID

时间:2019-08-23 14:04:58

标签: react-native dropdown

我在我的本机项目中使用了if([[defaults valueForKey:@"InAppStatus"] isEqualToString:@"Purchased"]) { //App Should Unlock with No Ads } else { //Show Ads } 。我正在从API获取数据。

对不起,我的英语不好。

react-native-material-dropdown

和下拉代码

  fetch('xxxx.json', {  
          method: 'POST',
          headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
          }
        }).then((response) => response.json())
        .then((responseJson) => {
          var count = Object.keys(responseJson.cities).length;
          for(var i=0;i<count;i++){
            //console.warn(responseJson.cities[i].name) // I need to add 
            //these names to dropdown
            this.state.drop_down_data.push({ value: responseJson.cities[i].name,id:responseJson.cities[i].id });
          }
          //this.setState({ drop_down_data });
        })
        .catch((error) => {
          console.error(error);
        });

和更改方法问题在这里

<Dropdown
            label='City'
            data={this.state.drop_down_data}
            onChangeText={this.onCityChange.bind(this)}
          />

在这里我想输入城市ID。值即将到来,但ID尚未到来,或者我不知道要进入ID。

如果我可以获取身份证,我可以发出城镇的邮政要求。

我该怎么做?

和一些json数据

onCityChange(val,ind,data){ fetch('xxxx/'+ cityid +'/towns.json', {  
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      }
    }).then((response) => response.json())
    .then((responseJson) => {
      this.setState({drop_down_data2: []});
      var count = Object.keys(responseJson.towns).length;
      for(var i=0;i<count;i++){
        //console.warn(responseJson.towns[i].name) // I need to add 
        //these names to dropdown
        //
        this.state.drop_down_data2.push({ value: responseJson.towns[i].name,id:responseJson.towns[i].id });
      }
      //this.setState({ drop_down_data });
    })
    .catch((error) => {
      console.error(error);
    });
  }

1 个答案:

答案 0 :(得分:1)

onChangeText 方法具有3个参数(值,索引,数据)

数据=完整数组

索引=已选择当前项目索引

您可以通过此代码获取ID

onChangeText = (value, index, data) => {
    const cityId = data[index].id;
    console.log("cityId", cityId);
  };

完整的示例代码

import React, { Component } from "react";
import { Dropdown } from "react-native-material-dropdown";

const data = [
  {
    value: "City1",
    id: 1
  },
  {
    value: "City2",
    id: 2
  },
  {
    value: "City3",
    id: 3
  }
];

export default class Example extends Component {
  onChangeText = (value, index, data) => {
    const cityId = data[index].id;
    console.log("cityId", cityId);
  };

  render() {
    return (
      <Dropdown
        label="Favorite Fruit"
        data={data}
        style={{ marginTop: 50 }}
        onChangeText={this.onChangeText}
      />
    );
  }
}