Доступ к свойствам объекта React-Native - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть ответ от сервера, который выглядит следующим образом

[  
   {  
      "metric":{  
         "id":"b66178b8-dc18-11e8-9f8b-f2801f1b9fd1",
         "name":"Detector de fum bucatarie",
         "metricValueType":"DOUBLE",
         "metricType":"DEVICE_VALUE",
         "groupUUID":null,
         "projectUUID":null,
         "companyUUID":"ccab28ed-3dcf-411f-8748-ec7740ae559c",
         "unit":null,
         "formula":null
      },
      "data":{  
         "1550150771819":"10.310835857351371"
      }
   }
]

Свойство Data содержит hashMap с меткой времени и значением.Когда я пытаюсь получить какое-либо значение, я получаю эту ошибку:

myErrorTypeError: undefined is not an object (evaluating 'metricValues.metric.id')

Как получить доступ к свойству?Я пробовал оба метода:

metricValues.metric.id

и

metricValues["metric"]["id"]

Как я могу получить значения hashMap?Я уже пробовал это:

const timestamp = Object.keys(metricValues.data)[0];
const values = Object.values(metricValues.data)[0];

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

Ваш ответ от сервера является массивом.И метрический объект находится в первом элементе этого массива.

Чтобы получить доступ к идентификатору внутри объекта метрики, вам нужно передать индекс, в котором этот объект присутствует, в массиве, который здесь равен 0.

Вот почему используйте:

metricValues[0].metric.id
0 голосов
/ 18 февраля 2019

Ваши данные - это массив объектов.Таким образом, даже если у ваших данных есть только один объект, он все равно является массивом объектов.ваш объект имеет индекс 0 массива.Доступ к идентификатору метрики можно получить следующим образом:

metricValues ​​[0] .metric.id

0 голосов
/ 18 февраля 2019

Попробуйте это (укажите, что [0])

metricValues[0].metric.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...