Структура данных в приложении Simple React

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

Вот ситуация, В javascript есть массив объектов:

let array = [{a: 1, b: 2, c: 3, d: -1}, {a: 4, b: 5, c: 6, d: -2}, {a: 7, b: 8, c: 9, d: -3}]

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

array.map((object) => {
  return <li>{object.a}{object.b}{object.d}</li>
})

Что у меня есть:

  • 1 2 -1
  • 4 5 -2
  • 7 8 -3

Я не могу легко стилизовать отдельные предметы в одну строку. В результате я хочу:

  • 1
  • 2
  • -1

  • 4

  • 5
  • -2 ...

Как мне сопоставить массив объектов, чтобы он выводил каждый элемент отдельно

  • тег?
  • Поведение ключевого слова "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) для оценки ваших знаний,...
    3
    0
    73
    3
    Перейти к ответу Данный вопрос помечен как решенный

    Ответы 3

    Ответ принят как подходящий

    Если вы используете последнюю версию реакции (16+), вы можете написать ее так, используя React.Fragment:

    array.map((object, i) => (
        <React.Fragment key = {i}> 
            <li>{object.a}</li>
            <li>{object.b}</li>
            <li>{object.d}</li>
        </React.Fragment> 
    ))
    

    Для версии React <16 (этот подход будет работать и для 16+) напишите это так:

    array.map((object, i) => (
        [ 
            <li key = {i}>{object.a}</li>,
            <li key = {i+1}>{object.b}</li>,
            <li key = {i+2}>{object.d}</li>,
        ]
    ))
    

    Примечание: Я использовал индекс как ключ, убедитесь, что вы используете правильные ключи в вашем коде.

    Вы можете сделать это:

    array.map((object) => {
      return <li>{object.a}</li><li>{object.b}</li><li>{object.d}</li>
    })
    

    У выражения JSX должен быть ровно 1 родительский узел,

    Attersson 19.05.2018 18:11

    Ох, хорошо. моя вина :(

    Skorek 19.05.2018 18:12
    // ES6 
    
    const list = number => `<li> ${number} </li>`;
    const mapObject = ({ a, b, d }) => [a, b, d].map(x => list(x))
    const reduceList = (acc, next) => acc.concat(next);
    
    array
      .map(mapObject)
      .reduce(reduceList, []);
    
    // ONE LINER
    array
      .map(({ a, b, d }) => [a, b, d].map(x => `<li> ${x} </li>`))
      .reduce((acc, next) => acc.concat(next), []);
    

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