Отображение данных, содержащих точки в React - PullRequest
1 голос
/ 23 марта 2020

Я пытаюсь map данные в React, поступающие из API, но у меня возникают проблемы с отображением объекта, который содержит dots, например, это: name.en_US. Как правильно отобразить этот объект и сохранить имеющуюся у меня структуру данных?

Я получаю дату в этом формате из API:

{
    "user": "User",
    "employeeId": "0000",
    "businessCustomer": "customer",
    "endCustomer": {
        "name": "",
        "address": "",
        "place": ""
    },
    "device": {
        "shipmentIds": "23",
        "name.en_US": "wasi",
        "name.fi_FI": " masi"
    },
    "task": {
        "time": "2019-02-10T16:55:46.188Z",
        "duration": "00:00:24",
        "sum": "75€"
    }
},

И затем я пытаюсь чтобы отобразить его, используя следующий код.

  const {
    user,
    employeeId,
    businessCustomer,
    endCustomer,
    device,
    task
  } = task;

  const{
    endCustomerName,
    address,
    place
  } = endCustomer;

  const {
    shipmentIds,
    names
  } = device;

  const{
    en_US,
    fi_FI
  } = names;

  const {
    time,
    duration,
    summa
  } = task;

Ответы [ 2 ]

2 голосов
/ 23 марта 2020

Вы можете деструктурировать свою собственность, как упомянуто @Vishnu, или вы также можете деструктурировать ее, указав правильное имя ключа

const {
    shipmentIds,
    'name.en_US': name_en_US,
    'name.fi_FI': name_fi_FI
} = device;

И затем вы можете получить доступ к своей переменной с помощью name_en_US.

2 голосов
/ 23 марта 2020

const data = {
    "user": "User",
    "employeeId": "0000",
    "businessCustomer": "customer",
    "endCustomer": {
        "name": "",
        "address": "",
        "place": ""
    },
    "device": {
        "shipmentIds": "23",
        "name.en_US": "wasi",
        "name.fi_FI": " masi"
    },
    "task": {
        "time": "2019-02-10T16:55:46.188Z",
        "duration": "00:00:24",
        "sum": "75€"
    }
};

const { device } = data;

const {
    shipmentIds,
    'name.en_US': name_en_US,
    'name.fi_FI': name_fi_FI
} = device;

const nameUS = device['name.en_US'];

console.log(name_en_US, nameUS);

Используйте [ ] нотацию типа, device['name.en_US'].

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