LearnNewsExamplesServices
Frontmatter
id4584
titletable.View: onStoreRecordChange only cellnode.innerHTML got update but the renderer don''t get call again
stateClosed
labels
bug
assignees[]
createdAtJul 27, 2023, 2:21 PM
updatedAtJul 28, 2023, 12:19 PM
githubUrlhttps://github.com/neomjs/neo/issues/4584
authorpensuwan-k
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJul 28, 2023, 12:19 PM

table.View: onStoreRecordChange only cellnode.innerHTML got update but the renderer don't get call again

Closed v8.1.0 bug
pensuwan-k
pensuwan-k commented on Jul 27, 2023, 2:21 PM

(No description provided)

tobiu referenced in commit 9dd7f6d - "#4584 table.View: getColumn()" on Jul 27, 2023, 3:00 PM
tobiu
tobiu Jul 27, 2023, 3:01 PM

this one will take a bit longer.

createViewData() does several transformations with a given rendererOutput, depending on the type. we need to extract this code into a new method, which we can then use inside onStoreRecordChange() as well.

tobiu referenced in commit eca0292 - "#4584 table.View: applyRendererOutput() => used inside createViewData() & onStoreRecordChange()" on Jul 28, 2023, 12:13 PM
tobiu
tobiu Jul 28, 2023, 12:19 PM

the renderer logic got moved into applyRendererOutput().

there is a catch though: onStoreRecordChange() had a specific node and was relying on getting an innerHTML string. this enabled us to trigger a delta update manually.

now a cell can contain more complex json based vdom, so that we do need to ping the vdom worker for a real update cycle. for a table view, this can be a complex operation.

strong recommendation: if you need to change multiple record fields at once, please use a bulk update via set() and don't change fields one by one.

i will create a new ticket for allowing partial vdom updates.

tobiu closed this issue on Jul 28, 2023, 12:19 PM