Ключ доступа: [{ «Ключ»: «Значение»} ] внутри объекта, который находится внутри другого массива?

#arrays #reactjs #nested #jsx

#массивы #reactjs #вложенный #jsx

Вопрос:

Я пытаюсь получить доступ к значению ключа Options и получить имя и значение в моем jsx, но я не могу использовать map в поле.Параметры (при наведении курсора мыши на параметры рядом с ним появляется знак вопроса).

Я попробовал поле.Параметры [0].Имя, поле.Параметры [«Имя»], field.map() .

Я просто не понимаю, как получить доступ к этим значениям. Объяснение было бы оценено.

Объект в массиве в массиве объектов.

У меня есть массив [] объектов {}, как показано ниже, и я пытаюсь получить значения объектов «Параметры». { «Type»: «рейтинг», «Key»: «профессионализм», «LabelBranding»: «api #профессионализм#заполнитель», «Label»: «Профессионализм:», «Required»: false, «Options»: [ { «Name»: «Смайлик», «Значение»: «0123456789» } ] },

Я не могу использовать (для of) в JSX. Итак, мне интересно, как получить к этому доступ?

Ответ №1:

Я думаю, вы были близки к этому. Вы пробовали это?

 {field.Options.map(block => (
  <p key={block.Name}>{block.Value}</p>
))}
 

Поскольку вы хотите выполнить итерацию field.Options массива.

Комментарии:

1. Это было первое, что я попробовал, и я получаю «TypeError: не удается прочитать свойство ‘map’ неопределенного». Когда я навожу курсор на «Параметры» в VSCode, рядом с ним появляется вопросительный знак.

2. Мне нужно было проверить, есть ли поле. Параметры не были определены перед отображением на объект. У первого объекта в массиве не было значения ключа «Options», поэтому он удалял его до того, как добрался до второго. Спасибо за ваш ответ @rateLess

Ответ №2:

Это был случай, когда не проверялось, был ли там массив «Options». У 1-го объекта, который возвращался, не было значения ключа «Параметры», как у остальных. Итак, я добавил условное обозначение вокруг него, и оно сработало плавно.

                 {field.Options !== undefined
              amp;amp; field.Options.map((block) => {
                if (block.Value !== undefined || block.Name !== undefined) {
                  return (
                    <ul>
                      <li key={block.Name}>{block.Value}</li>
                      <li key={block.Name}>{block.Name}</li>
                    </ul>
                  );
                }
                return null;
              })
            }