react-component / react-component/tree

loadData promise will be triggered twice if it's been rejected directly without appending child nodes.

Open
#518 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
1.3k
Forks
490
Avg merge
3d 17h
Merged PRs (30d)
5

Description

Hey mate, I can reproduce this issue in the following sandbox. Can anyone help take a look at this?

https://codesandbox.io/s/gallant-darkness-c8uvw?file=/App.jsx:1953-1954
You can see that console will print out two batches of message in loadData callback.

Coz I'm trying to refresh a tree node for my next trial when some metadata is ready in the backend. So I reject the promise in loadData. However, this will trigger this callback twice, so does the real requesting body.

I've checked rc-tree's implementation, it's purely resulted from TreeNode's syncLoadData. It'll retrigger onNodeLoad if no children is detected on itself meanwhile it's not loaded.

Can we optimize its mechanism a bit?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the duplicate callback in the linked CodeSandbox, then start with TreeNode's syncLoadData and the onNodeLoad path described in the issue. Confirm the behavior when loadData is rejected without child nodes; done means the loadData callback and request are triggered only once in that case.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.