Реагировать на нативный материал, выпадающий получить идентификатор из данных JSON - PullRequest
2 голосов
/ 22 апреля 2019

Я использовал react-native-material-dropdown в своем собственном проекте. Я получаю данные от API.

Проблема в том, что я успешно получаю имя в раскрывающемся списке, но я хочу hotelId этого выбранного имени. Я не могу разобрать все JSON в раскрывающемся списке.

JSON:

    {
            "message": "Success",
            "notificationCount": 0,
            "result": [{
                "hotelId": "india3c71a2b8-05d3-476e-825a-f31e08ac3bdc",
                "name": "Hotel Samrat"
            }, {
                "hotelId": "indiae4ef0d05-f46e-48f3-9bce-a37bfde089a4",
                "name": "Hotel Kalinga Ashok"
            }],
            "status": 1,
            "totalRecord": 2,
            "scopeId": ""
   }

Я проанализировал данные по:

var count = Object.keys(responseJSON.result).length;
            let drop_down_data = [];
            for (var i = 0; i < count; i++) {
                console.log(responseJSON.result[i].name) // I need to add 
                drop_down_data.push({ value: responseJSON.result[i].name }); // Create your array of data
            }

И добавил этот массив в выпадающий список:

  <Dropdown
       label={'Select hotel name'}
       data={this.state.data}
       baseColor='#79292F'
  />

Я прошел все ответы о переполнении стека. но я не могу получить точный ответ.

Ответы [ 2 ]

3 голосов
/ 22 апреля 2019
const drop_down_data = responseJSON.result.map(element => ({
  value: element.name,
  label: element.hotelId
}));

valueExtractor = val => {
  console.log(val);
};

<Dropdown
  label={"Select hotel name"}
  data={this.state.data}
  baseColor="#79292F"
  valueExtractor={this.valueExtractor}
/>;
3 голосов
/ 22 апреля 2019

Вы можете передавать данные как {value : "", label : ""}

var count = Object.keys(responseJSON.result).length;
            let drop_down_data = [];
            for (var i = 0; i < count; i++) {
                console.log(responseJSON.result[i].name) // I need to add 
                drop_down_data.push({
                value : responseJSON.result[i]. hotelId
                label: responseJSON.result[i].name 
               }); // Create your array of data
            }

//pass your drop_down data to dropdown component 
  <Dropdown
       label={'Select hotel name'}
       data={YOURFINALDATAOBJECT}
       baseColor='#79292F'
  />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...