Как применить условные обозначения во вложенной функции карты?

#javascript #react-native #jsx

Вопрос:

Я хочу обработать каждую строку моего результата item.fieldtype, но я не нахожу способа сделать это, кто-то знает, как?

 ....  lt;SafeAreaView style={{flex: 1}}gt;  lt;Viewgt;  {Object.keys(Body).length gt; 0 ? (  Body.map(item =gt; lt;Text key={uuid.v4()}gt;{item.field}lt;/Textgt;  // if (item.fieldtype == "Numeric") lt;Textgt;Numericlt;/textgt; ===gt; apply here  //else if (item.fieldtype == "Text" ) lt;Textgt;Textlt;/textgt; ===gt; "" ""   )  ) : (  lt;Textgt;Testadolt;/Textgt;  )}  lt;/Viewgt;  lt;/SafeAreaViewgt; ...  

Ответ №1:

Вы можете использовать тег фрагмента (или просто a View ) и возвращать несколько элементов на карте:

 lt;SafeAreaView style={{flex: 1}}gt;  lt;Viewgt;  {Object.keys(Body).length gt; 0 ?   (Body.map(item =gt;   lt;React.Fragment key={uuid.v4()}gt;  lt;Textgt;{item.field}lt;/Textgt;  {item.fieldtype == "Numeric" ? lt;Textgt;Numericlt;/Textgt; : null}  {item.fieldtype == "Text" ? lt;Textgt;Textlt;/Textgt; : null}  lt;/React.Fragmentgt;))  : (lt;Textgt;Testadolt;/Textgt;)}  lt;/Viewgt; lt;/SafeAreaViewgt;  

(Обратите внимание, что было бы идеально, если бы у вас были удобные стабильные идентификаторы, а не генерировать новые uuid для каждого элемента при каждом рендеринге)