Использование лицензии Ag-Grid Enterprise для получения ag-grid: выполняется поиск компонента [agSetColumnFilter], но он не найден. "Ошибка - PullRequest
0 голосов
/ 13 февраля 2019

Я использую функцию Ag-Grid Enterprise « agSetColumnFilter » в течение нескольких месяцев без проблем.

Я использую следующие версии:

    "ag-grid": "^17.1.1",
    "ag-grid-enterprise": "^17.1.1",
    "ag-grid-react": "^17.1.0",

После небольшого рефакторинга я начинаю получать эту ошибку после простого нажатия на меню фильтра:

ag-grid: Looking for component [agSetColumnFilter] but it wasn't found.
Array.concat.ComponentProvider.retrieve @ componentProvider.js?6ebb:209
Array.concat.ComponentResolver.resolveByName @ componentResolver.js?1587:159
Array.concat.ComponentResolver.getComponentToUse @ componentResolver.js?1587:155
Array.concat.ComponentResolver.newAgGridComponent @ componentResolver.js?1587:271
Array.concat.ComponentResolver.createAgGridComponent @ componentResolver.js?1587:236
Array.concat.FilterManager.createFilterInstance @ filterManager.js?d1c0:376
Array.concat.FilterManager.createFilterWrapper @ filterManager.js?d1c0:393
Array.concat.FilterManager.getOrCreateFilterWrapper @ filterManager.js?d1c0:343
Array.concat.StandardMenuFactory.showPopup @ standardMenu.js?505d:52
Array.concat.StandardMenuFactory.showMenuAfterButtonClick @ standardMenu.js?505d:45
Array.concat.HeaderComp.showMenu @ headerComp.js?f669:122
(anonymous) @ headerComp.js?f669:107
componentResolver.js?1587:274 Error creating component filter=>agTextColumnFilter
Array.concat.ComponentResolver.newAgGridComponent @ componentResolver.js?1587:274
Array.concat.ComponentResolver.createAgGridComponent @ componentResolver.js?1587:236
Array.concat.FilterManager.createFilterInstance @ filterManager.js?d1c0:376
Array.concat.FilterManager.createFilterWrapper @ filterManager.js?d1c0:393
Array.concat.FilterManager.getOrCreateFilterWrapper @ filterManager.js?d1c0:343
Array.concat.StandardMenuFactory.showPopup @ standardMenu.js?505d:52
Array.concat.StandardMenuFactory.showMenuAfterButtonClick @ standardMenu.js?505d:45
Array.concat.HeaderComp.showMenu @ headerComp.js?f669:122
(anonymous) @ headerComp.js?f669:107
filterManager.js?d1c0:401 Uncaught TypeError: Cannot read property 'then' of null
    at FilterManager.Array.concat.FilterManager.putIntoGui (filterManager.js?d1c0:401)
    at FilterManager.Array.concat.FilterManager.createFilterWrapper (filterManager.js?d1c0:394)
    at FilterManager.Array.concat.FilterManager.getOrCreateFilterWrapper (filterManager.js?d1c0:343)
    at StandardMenuFactory.Array.concat.StandardMenuFactory.showPopup (standardMenu.js?505d:52)
    at StandardMenuFactory.Array.concat.StandardMenuFactory.showMenuAfterButtonClick (standardMenu.js?505d:45)
    at HeaderComp.Array.concat.HeaderComp.showMenu (headerComp.js?f669:122)
    at HTMLSpanElement.<anonymous> (headerComp.js?f669:107)

Работа по рефакторингу, которую я выполнял, заключалась в том, чтобы перебрать массив и создать компоненты вкладки React-Bootstrap, которые отображают компоненты Ag-grid при нажатии.Я помещаю массив вкладок в <div> для визуализации.

Для моих данных строки , это массив, подобный так:

[{
  id: 1,
  keyword: 'tv',
  projects: [{ id: 1, name: 'Project 1' }, {id: 2, name: 'Project 2' }]
},
{
  id: 2,
  keyword: 'sofa',
  projects: [{ id: 3, name: 'Project 3' }]
}]

My определения столбцов возвращаются из функции, подобной этой: (* ​​1021 * - это хэш, в котором хранятся мои параметры фильтра, я перебираю значения и создаю массив строк, чтобы передать filterParams.values:

function createColumnDefs = (lookup) => ([
{
  field: 'projects',
  headerName: 'Projects',
  filter: 'agSetColumnFilter',
  cellRenderer: 'ListRenderer',
  cellRendererParams: {
    accessor: 'name'
   },
   filterParams: {
     values: _.get(lookup, 'projects', []).map(project => project.name),
     debounceMs: 200
  }
},
{
  field: 'keyword',
  headerName: 'Keyword',
  filter: 'agTextColumnFilter',
  sort: 'asc',
  filterParams: {
    debounceMs: 200
  },
  pinned: 'left',
  minWidth: 250
}
]);

Все отлично работает, включая отображение строк, выделение строк, сортировку, фильтрацию текста, бесконечную прокрутку. ТОЛЬКО когда я нажимаю на меню фильтра гамбургеров в заголовке столбца, оно выдает вышеуказанную ошибку.

Этот фильтр работал в прошлом, и с тех пор я не менял структуру данных строк или определения столбцов или параметры фильтра.

*************** Снимки экрана для справки ***************

My row data (an array of objects Column Defs that I pass into Ag-grid

error printed in Chrome inspector

1 Ответ

0 голосов
/ 16 мая 2019

Я только что столкнулся с той же проблемой и смог решить, удалив «filter: true» из моих определений столбцов.Я вижу, что вы определяете конкретные типы фильтров в своих определениях, вы можете попробовать удалить их и посмотреть, распознает ли ag-grid типы фильтров, которые ему нужны.Если это не сработает, вы можете вместо этого попробовать изменить эти фильтры на пользовательские.Надеюсь, это поможет!

...