bug(COMPONENT): UI not rendered when dynamically modifying data in a mat tree
- Dominant language
- TypeScript
- Stars
- 25k
- Forks
- 6.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 91
Description
### Is this a regression?
- [x] Yes, this behavior used to work in the previous version
### The previous version in which this bug was not present was
17.1.5
### Description
Clicking on the node in the tree to dynamically add data doesn't update the UI.
### Reproduction
StackBlitz link: https://stackblitz.com/edit/2rhfgfpu?file=src%2Fexample%2Ftree-nested-child-accessor-overview-example.ts,src%2Fexample%2Ftree-nested-child-accessor-overview-example.html
Steps to reproduce:
1. Click on a node
2. The tree is not updated with the newly created node
### Expected Behavior
When i add a node, when the UI has to be updated.
### Actual Behavior
When i click on a node, i sometimes need to load dynamic data from the backend and append the created node to the node i just clicked.
We used to refresh the UI by assigning null to the data of the datasource and re-assigning the data to the datasource following this ticket : https://github.com/angular/components/issues/11381
Unfortunately, this does not work anymore because i have the following error : nodes is not iterable.
I checked the source code, and the error occurs in the tree component.
Funnily enough, when i modify the HTML to live reload the page, my nodes appear.
### Environment
- Angular: 19.1.5
- CDK/Material: 19.1.2
- Browser(s): Chrome Version 133.0.6943.98 (Official Build) (64-bit)
- Operating System (e.g. Windows, macOS, Ubuntu): Linux
Contributor guide
Research direction
Reproduce the regression in the linked StackBlitz, starting with src/example/tree-nested-child-accessor-overview-example.ts and its HTML template. Then inspect the tree component source where the “nodes is not iterable” error occurs. Done means dynamically appended child data renders in the tree without the error or requiring a live reload.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- angular, typescript
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100