Как отобразить данные из массива объектов для продукта выбора параметров в react?

#arrays #reactjs #options #variant

Вопрос:

Добрый день, я новичок в react, и мне нужна помощь.

  • Я просто пытаюсь сопоставить данные из api с намерением создать параметры для выбора продукта.
  • Я могу это сделать, если данные api для конкретной концепции (например, bluetooth, цвет, вес) имеют простой формат массива, такой как: "bluetooth":["4.0","A2DP","LE"] Затем с помощью следующего кода отображаются параметры для выбора в селекторе
     lt;OptionsCss onChange={(e) =gt; setSize(e.target.value)}gt;  {product.bluetooth?.map((s) =gt; (  lt;FieldCss key={s}gt;{s}lt;/FieldCssgt;  ))}  
  • Однако с концепцией под названием хранилище я не могу получить значения параметров продукта для выбора. Здесь структура массива выглядит следующим образом :

"storages":[{"code":2000,"name":"16 GB"},{"code":2001,"name":"32 GB"}] Здесь мне просто нужны значения, например, 16 ГБ и 32 ГБ. Таким образом, сопоставление api по предыдущему способу дает мне пустые варианты выбора.

  • Тогда возникает вопрос: как я могу получить доступ к значениям имен из примера, упомянутого ранее ? и что я должен изменить по сравнению с предыдущим примером сопоставления?

Большое спасибо!

Ответ №1:

Когда вы сопоставляете массив, вы получаете по одному объекту за раз, а затем можете получить доступ к нужному свойству из объекта, используя storage.name его .

 obj.storages.map(storage =gt; storage.name)  

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

 lt;OptionsCss onChange={(e) =gt; setSize(e.target.value)}gt;  {product.storages?.map((s) =gt; (  lt;FieldCss key={s.name}gt;{s.name}lt;/FieldCssgt;  ))} /gt;  

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

1. Спасибо, это действительно имеет смысл. К сожалению, я все еще не могу получить значения имени хранилища для селектора выбора

2. хм, вы уверены в том, что возвращает API, а также в названии product ?