@Martian_o

React, не могу вывести элемент после axios get запроса?

5cbdc55b6b4e0655989566.png
{this.state.cinemas.map(cinema => (
          <ListItemCinema
            mall={cinema.attributes.mall}
            title={cinema.attributes.title}
            subway={
              cinema.attributes.subway[0] === "undefined"
                ? null
                : cinema.attributes.subway[0].name
            }
            labels={cinema.attributes.labels}
            key={cinema.id}
            shortTitle={cinema.attributes.shortTitle}
          />
        ))}


как я могу вывести все элементы, если в некоторых объектах встречается постой массив subway
  • Вопрос задан
  • 110 просмотров
Решения вопроса 2
rockon404
@rockon404 Куратор тега React
Frontend Developer
Ничто не мешает вам передавать объект cinema в компонент целиком:
{this.state.cinemas.map(cinema => <ListItemCinema key={cinema.id} cinema={cinema} />)}


const ListItemCinema = ({ cinema }) => {
  const { subway, shortTitle, labels, title, mail } = cinema.attributes;
  
  /* some code */  

  return (
    <div>
      {/* some code */}
      <ul>
        {subway.map(station => <li key={station.name}>{station.name}</li>)}
      </ul>
    </div>
  );
}
Ответ написан
Комментировать
@Martian_o Автор вопроса
решил вопрос с пустым массивом через проверку
{props.subway.length ? props.subway[0].name : null}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@KappyJS
{this.state.cinemas.map((cinema,num) => (
      <ListItemCinema
        mall={cinema.attributes.mall}
        title={cinema.attributes.title}
        subway={
          cinema.attributes.subway[num] === "undefined"
            ? null
            : cinema.attributes.subway[num].name
        }
        labels={cinema.attributes.labels}
        key={cinema.id}
        shortTitle={cinema.attributes.shortTitle}
      />
    ))}


Если вы про это
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы