Как перебирать вложенные объекты в reactjs?

Поскольку это в объекте, я делаю это, но это не работает. Как мне получить поле «ключ» через цикл?

  <div>
      <ul>
        {tickets && tickets.issues && Object.keys(tickets.issues).map((issue, i) =>
        (
          <li key = {i}>
            Issue number: {tickets.issues.key}
          </li>
         ))}
      </ul>
  </div>

РЕШЕНИЕ

   <div>
      <ul>
       {this.state.tickets && this.state.tickets.issues && Object.keys(this.state.tickets.issues).map((issue, i) =>
       (
        <li key = {i}>
           Issue number: {this.state.tickets.issues[i].key}
        </li>
      ))}
      </ul>
  </div>

Как перебирать вложенные объекты в reactjs?

Есть только один массив?

Murat Karagöz 01.10.2018 16:11
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
3 315
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

tickets.issues - это массив объектов, поэтому:

const { issues } = tickets;
issues.map(issue => console.info(issue.key));

Позвольте мне попробовать это: D

leo jr silao 01.10.2018 16:20

Как мне отобразить это в функции рендеринга?

leo jr silao 01.10.2018 22:23

Не в функции Mount

leo jr silao 01.10.2018 22:23

Простое решение

  <div>
    <ul>
      {tickets && tickets.issues && Object.keys(tickets.issues).map((issue, i) => 
     (
      <li key = {i}>
         Issue number: {tickets.issues.key}
      </li>
    ))}
    </ul>
  </div>

Он ничего не отображает o.o

leo jr silao 01.10.2018 16:19

Теперь это должно сработать. Я допустил небольшую ошибку. Пожалуйста, проверьте обновленный ответ

Hemadri Dasari 01.10.2018 16:22

Все еще ничего о.о

leo jr silao 01.10.2018 16:31

О, я только что понял, что полей нет

leo jr silao 01.10.2018 16:34

Это только билеты. Выпуски.

leo jr silao 01.10.2018 16:35

@leojrsilao Ура, ладно, ваш OP был вложен с полями. Np. Вы добавили свое решение поверх моего, поэтому я снова отредактировал и добавил только ваше решение к моему ответу. Не стесняйтесь редактировать. Одобряю, если вам нужно

Hemadri Dasari 01.10.2018 16:58

В моем решении данные по-прежнему не отображаются: /, его пусто, данные не отображаются

leo jr silao 01.10.2018 17:15

Эй, похоже, я снова застрял: / можешь проверить мою проблему здесь stackoverflow.com/questions/52596543/…

leo jr silao 01.10.2018 21:09
Ответ принят как подходящий

Глядя на изображение вашего ответа, ключевое поле существует в issues [], но не в полях, поэтому все должно быть в порядке (вложение не требуется):

{ Object.keys(tickets.issues).map((issue, i) => (
  <li key = {issue.key}>
   Issue number: {issue.key}
  </li>
))}

Если у вас есть ключ в полях (не развернут на изображении)

{ Object.keys(tickets.issues).map((issue, i) => (
  Object.keys(issue.fields).map(field=>(
 <li key = {field.key}>
   Issue number: { field.key }
 </li>
)
))}

Хм, используя первый метод, где билеты.issues - это массив, не относящийся к полям, я получаю сообщение об ошибке TypeError: невозможно преобразовать undefined или null в объект

leo jr silao 01.10.2018 16:47

хм, проверьте, существуют ли они, {tickets && tickets.issues && Object.keys(...)}, потому что они становятся доступными только после вызова API.

Bhojendra Rauniyar 01.10.2018 16:50

Да ... Я вижу, что сейчас происходит, это отображается до того, как я получу данные JSON в моей функции componentDidMount, как мне перейти оттуда, поэтому объект равен нулю. Есть ли способ получить данные до их рендеринга?

leo jr silao 01.10.2018 17:02

Нет. Вы должны проверить, как я прокомментировал выше.

Bhojendra Rauniyar 01.10.2018 17:03

Хорошо сделано, я сделал это, и да, похоже, пусто, ничего не печатается

leo jr silao 01.10.2018 17:07

Я отредактировал код ur, чтобы показать, что я сделал, и ничего не печатает, хотя на этот раз ошибки нет

leo jr silao 01.10.2018 17:08

Что мне теперь делать: O

leo jr silao 01.10.2018 17:10

Я отправлю свое решение о.о.

leo jr silao 01.10.2018 17:19

ха, вы получали объект от государства. Ладно.

Bhojendra Rauniyar 01.10.2018 17:21

да, но это странно, потому что перед рендерингом я инициализировал билеты в var tickets = this.state XD

leo jr silao 01.10.2018 17:23

Это была глупая ошибка XDDDD

leo jr silao 01.10.2018 17:23

Нет проблем, со мной тоже иногда бывает.

Bhojendra Rauniyar 01.10.2018 17:24

Эй, похоже, я снова застрял, вот ссылка :-( stackoverflow.com/questions/52596543/…

leo jr silao 01.10.2018 21:10

Извини, я просто вижу это и собираюсь спать. Если не получите ответа, то предоставлю завтра. Но вы тоже должны уловить идею в моем ответе. Посмотрите на второй код и попытайтесь понять, что он делает.

Bhojendra Rauniyar 01.10.2018 21:52

Привет, у меня вопрос, а что, если бы мне пришлось поставить <li key = {index}> </li> во внешнем цикле и номер выпуска во внутреннем цикле, как бы выглядел синтаксис? Спасибо.

leo jr silao 03.10.2018 19:51
{ Object.keys(tickets.issues).map((issue, i) => ( <li> { Object.keys(issue.fields).map(field=>( {field.key} ) } </li> ))}
Bhojendra Rauniyar 03.10.2018 19:56

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