Рендеринг данных из JSON ReactJS: данные не отображаются в виде столбцов

Я работаю над созданием веб-приложения с использованием reactJS. Мы должны отобразить продукт, на который подписались пользователи, в виде таблицы. Например, вот ответ:

{
    "data" : [
        {
          "user": "user1",
          "subscriptions": [
          {
             " productid":1,
             " productname":"user1_product_1",
           "productIdvalue" : 20
          }, {
            " productid":2,
            " productname":"user1_product_2",
          "productIdvalue" : 25
         }]
        },
        {
            "user": "user2",
            "subscriptions": [
                {
                    " productid":1,
                    " productname":"user2_product_1",
                  "productIdvalue" : 20
                 }, {
                    " productid":2,
                    " productname":"user2_product_2",
                  "productIdvalue" : 30
                 }, {
                    " productid":3,
                    " productname":"user2_product_3",
                  "productIdvalue" : 20
                 }, {
                    " productid":4,
                    " productname":"user2_product_4",
                  "productIdvalue" : 20
                 }]
        }
      ]
}

Таким образом, данные подписки являются динамическими. Как я могу отобразить приведенные выше данные в табличных данных следующим образом: Макет Пользователь может подписаться на любое количество продуктов. На данный момент у нас нет пользователей, которые подписались более чем на 4 продукта.

Я реализовал код, как показано ниже:

class Example2 extends Component {
    render() {
        return (
      <table>
            <div>
                {
                    data.data.map((data, i) => {
                        return (
                            <tr key = {i}>
                  {data.subscriptions.map(function (subscription, i) { 
                                                return <div key = {i}>
                          <td>{subscription.productname}</td>
                          <td>{subscription.productIdvalue}</td>
                                                </div>
                                            })}
                            </tr>
                        );
                    })
                }
            </div>
            </table>
        );
    }
} 
export default Example2;

В приведенном выше коде каждый «td» отображается в новой строке. Пожалуйста, дайте мне знать, как исправить мой код.

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

Ответы 1

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

Две основные проблемы:

  1. Исправьте свои данные
" productid":1,                   // start with space, try to remove it
" productname":"user1_product_1", // like above
"productIdvalue" : 20

Когда ваши ключи объекта неверны, вы не можете отображать дом по ключу.

  1. Не добавляйте <div> между <tr>
<tr key = {i}>
  {data.subscriptions.map(function (subscription, i) { 
    return <div key = {i}> // change <div> to <React.Fragment key = {i}>
      <td>{subscription.productname}</td>
      <td>{subscription.productIdvalue}</td>
    </div>               // change </div> to </React.Fragment>
   })}
</tr>

коды и ящик например

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