- Issue created by @khiminrm
- πΊπ¦Ukraine khiminrm
Can't find what causes the bug. But noticed that it not happens if I return empty results just before
$value = $style->getField($row->index, $field_id);
inSelective::getOids()
like this:return []; $value = $style->getField($row->index, $field_id);
If I add
return [];
after$value = $style->getField($row->index, $field_id);
, the error appears again. So during rendering somehow the drupalSettings receives newly generated view_dom_id and cached.I've just used custom fix to remove doubled view_dom_id:
function my_module_js_settings_alter(array &$settings, AttachedAssetsInterface $assets) { if (empty($settings['views']['ajaxViews']) || count($settings['views']['ajaxViews']) == 1) { return; } // Fix bug with doubled view_dom_id for views with selective filters. $view_name_display_dom_ids = []; foreach ($settings['views']['ajaxViews'] as $dom_id => $ajax_view) { $view_name_display_dom_ids[$ajax_view['view_name']][$ajax_view['view_display_id']][] = $dom_id; } foreach ($view_name_display_dom_ids as $displays) { foreach ($displays as $dom_ids) { if (count($dom_ids) > 1) { unset($settings['views']['ajaxViews'][$dom_ids[0]]); } } } }
But would be nice to fix source of the issue.