#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;
})
}