react.dev icon indicating copy to clipboard operation
react.dev copied to clipboard

fix: cascade deletion removes parent and cleans up grandparent refs in TravelPlan useImmer example

Open DeveloperViraj opened this issue 2 months ago • 1 comments

This update fixes the TravelPlan example in “Choosing the State Structure” so that deleting a place now behaves correctly and cleans up all related data.

When the last child of a node is removed, the example now:

Removes the entire subtree of that child (for proper memory cleanup)

Removes the deleted node’s ID from its parent’s childIds

Automatically deletes the parent if it becomes empty (and isn’t the root)

Removes that parent’s ID from its own parent, cascading the cleanup upward until the root

This prevents dangling references and ensures that deletions cascade cleanly through the hierarchy.

Changed file:

src/content/learn/choosing-the-state-structure.md

Notes:

The root node (ID 0) is always preserved.

The logic uses concise use-immer draft updates for clarity and immutability.

DeveloperViraj avatar Nov 14 '25 13:11 DeveloperViraj

Size changes

📦 Next.js Bundle Analysis for react-dev

This analysis was generated by the Next.js Bundle Analysis action. 🤖

This PR introduced no changes to the JavaScript bundle! 🙌

github-actions[bot] avatar Nov 14 '25 13:11 github-actions[bot]