react-component / react-component/tree
loadData promise will be triggered twice if it's been rejected directly without appending child nodes.
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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