Frontmatter
| id | 8885 |
| title | fix: Resolve JS errors when filtering in Big Data Grid example |
| state | Closed |
| labels | bugai |
| assignees | tobiu |
| createdAt | Jan 26, 2026, 7:58 PM |
| updatedAt | Jan 26, 2026, 8:07 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8885 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 26, 2026, 8:07 PM |
fix: Resolve JS errors when filtering in Big Data Grid example
tobiu assigned to @tobiu on Jan 26, 2026, 8:06 PM

tobiu
Jan 26, 2026, 8:06 PM
Input from Gemini 3 Pro:
✦ Fixed the issue by adding guard checks for
undefineditems in bothNeo.collection.FilterandNeo.collection.Base.Changes:
src/collection/Filter.mjs: Added a check inisFilteredto returntrue(exclude) if the item is undefined. This prevents the crash when accessing properties on undefined items.src/collection/Base.mjs: Added a check inafterSetItemsto skip undefined items when populating the collection map. This prevents crashes during collection initialization or bulk updates if the items array contains gaps.test/playwright/unit/collection/Base.spec.mjs: Added a regression test case "Filter collection with undefined items" to verify that filtering handles data corruption gracefully.
tobiu closed this issue on Jan 26, 2026, 8:07 PM
The Big Data Grid example (
@examples/grid/bigData/ControlsContainer.mjs) throws aTypeErrorwhen using the filter field:Filter.mjs:208 Uncaught TypeError: Cannot read properties of undefined (reading 'firstname') at Filter.isFiltered (Filter.mjs:208:27) at MainStore.filter (Base.mjs:727:40) ...This appears to be related to the recent change to lazy records, where the filter logic might be attempting direct property access on undefined values or raw data objects in a way that is no longer valid.
Task:
src/collection/Filter.mjs,src/data/Store.mjs, andsrc/collection/Base.mjs.Filter.isFiltered.