Frontmatter
| id | 8908 |
| title | Regression: Big Data Grid filters regenerate data and reset row count |
| state | Closed |
| labels | bugairegression |
| assignees | tobiu |
| createdAt | Jan 30, 2026, 10:42 AM |
| updatedAt | Jan 30, 2026, 10:45 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8908 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 30, 2026, 10:45 AM |
Regression: Big Data Grid filters regenerate data and reset row count
tobiu assigned to @tobiu on Jan 30, 2026, 10:45 AM

tobiu
Jan 30, 2026, 10:45 AM
Input from Gemini 3 Pro:
✦ I have applied the fix to
examples/grid/bigData/MainStore.mjs. TheafterSetAmountRowsandafterSetAmountColumnshooks now check forthis.sourceIdand return early if present. This prevents the shadow collection (allItems) used by the filtering logic from incorrectly regenerating data and resetting the store state.Changes committed in
2e26baa9f.
tobiu closed this issue on Jan 30, 2026, 10:45 AM
Description
In the Big Data Grid example (
examples/grid/bigData), filtering causes the entire dataset to be regenerated and reset to the default row count (1000), even if the user had previously loaded a different amount (e.g., 100k).Root Cause
The
MainStoreclass has reactive configs (amountRows_,amountColumns_) that trigger data generation in theirafterSethooks.When
Collection.filter()runs for the first time, it creates a shadow collectionallItemsto preserve the unfiltered state. It usesme.constructor(i.e.,MainStore) to create this instance.allItemsis instantiated as aMainStore.amountRowsconfig (defaulting to 1000 inoriginalConfig) is applied, triggeringafterSetAmountRows.afterSetAmountRowsblindly callsthis.clear()andthis.generateData().Fix
Modify
examples/grid/bigData/MainStore.mjsto check forthis.sourceIdin the data generation hooks. IfsourceIdis present, it indicates the store is operating as a shadow/linked collection (likeallItems), and it should NOT generate its own data or clear existing items.Impact
examples/grid/bigData/MainStore.mjsProposed Changes
Add
if (this.sourceId) return;to:afterSetAmountColumnsafterSetAmountRows