Настройка элемента массива сетки React kendo в качестве поля столбца

#reactjs #kendo-ui #kendo-grid #kendo-react-ui

#reactjs #kendo-пользовательский интерфейс #kendo-grid #kendo-react-ui

Вопрос:

У меня есть продукты.json-файл со всеми категориями в качестве объекта. Это работает нормально, если формат данных указан по ссылке ниже, но это не удается, если категории в этом json являются массивом. Я пытаюсь создать сетку react с одним столбцом из массива элементов категории.

Пример: https://stackblitz.com/edit/react-txwobq?file=app/products.json

Он отлично работает с блоком категорий как

 <Column field="Category.CategoryName" title="CategoryName" />
  

в коде grid с приведенным ниже объектом json

 "Category" : {
    "CategoryID" : 1,
    "CategoryName" : "Beverages",
    "Description" : "Soft drinks, coffees, teas, beers, and ales"
}
  

Но я получаю внешний api в формате массива для таких категорий, как

 "Category" : [{
    "CategoryID" : 1,
    "CategoryName" : "Beverages",
    "Description" : "Soft drinks, coffees, teas, beers, and ales"
}]
  

Я пытался прочитать это значение в сетке react kendo следующим образом, но безуспешно. В чем была ошибка, которую я делаю?

 <Column field="Category[0].CategoryName" title="CategoryName" />
  

Ответ №1:

Вы можете привязать столбец к полю «Категория» и определить пользовательский компонент ячейки, который будет отображать первый элемент из массива. Пожалуйста, проверьте приведенный ниже пример:

Определение столбца:

   <Column
    field="Category"
    title="Categories"
    cell={CategoryCell} 
  />
  

Пользовательская ячейка:

 const CategoryCell = (props) => {
   const category = props.dataItem[props.field][0];

   return <td>{category.CategoryName}</td>;
};