Доступ к объекту в объекте в реакции родной

Я извлекаю данные из API в приложение. API дает вам данные о списках групп, которые я могу правильно отображать для пользователя, и он отлично работает.

ВЫЗОВ API

componentDidMount() {  
    api.get('/groups?owner=true&groupMembers='+`${userID}`).then((response) => {
      let data = response.data.data.
      this.setState({userGroups: data , showLoader: false})
      console.info(JSON.stringify(this.state.userGroups))
    })
}

ПОСМОТРЕТЬ

    {
    userGroups.map((item, i) => {
    return (
    <List.Item
    key = {i} 
    title= {item.name}
    title = {item.member.firstname} {item.member.lastname}
    description = {item.description}
    left = {props => <List.Icon {...props} icon = "people" />}
  />
      );
    })
  }

ДАННЫЕ API

{
  "code": 2000,
  "message": "OK",
  "data": [
    {
      "id": 4,
      "groupType": "",
      "name": "Stars,
      "description": "Designed for stars",
      "avatar": "",
      "createdDate": "2019-02-08 15:13:49",
      "updatedDate": null,
      "owner": {
        "id": 2,
        "member": {
          "id": 3,
          "firstname": "Jack",
          "lastname": "Shaw",
          "othernames": "Eben",
          "createdDate": "2010-02-08 10:43:48"
        },
        "community": {
          "id": 3,
          "createdDate": "2019-02-06 09:59:21",
          "updatedDate": "2019-02-08 14:18:03",
          "communityType": "DEFAULT",
          "avatar": "string",
          "name": "Stars",
          "description": "Designed for stars"
        },
        "createdDate": "2019-02-08 11:06:44",
        "updatedDate": null,
        "admin": false
      },
      "closed": false,
      "opened": true,
      "default": true
    }
  ],
  "errors": null,
  "pager": {
    "page": 1,
    "pageSize": 10,
    "totalCount": 2,
    "direction": "DESC",
    "sortProperties": [
      "id"
    ]
  }
}

Теперь проблема в том, что я хочу отобразить имя владельца там, где у меня есть представление {item.member.name}, но мне трудно это сделать. Я хочу иметь доступ к данным в разделе членов массива и привязать их к представлению.

Повторите вашу попытку с item.member.name: элементы в массиве не имеют свойства с именем member. У них есть свойство owner, которое, в свою очередь, имеет свойство member. Но у этого объекта member нет свойства name, у него есть firstname и lastname. Так что title = {item.owner.member.firstname + " " + item.owner.member.lastname} имело бы смысл (хотя я бы, наверное, взял member на локальный).

T.J. Crowder 11.02.2019 12:11

извините за ошибку, только что отредактировал вопрос

developer 11.02.2019 12:14

Это все та же основная проблема. item.member отсутствует. Есть item.owner.member.

T.J. Crowder 11.02.2019 12:16

Поскольку элементы, похоже, имеют свойства id, я бы также использовал их вместо индекса массива для key. Что-то вроде: pastebin.com/VEyAsWdJ

T.J. Crowder 11.02.2019 12:19
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
4
28
0

Другие вопросы по теме