React, a leading JavaScript library for building user interfaces developed by Facebook, is experiencing significant user-reported issues with its upcoming React 19 release. The concerns primarily revolve around hooks, performance discrepancies, and the integration of custom elements, indicating potential hurdles for developers upgrading to this version.
The recent issues and pull requests (PRs) highlight several key challenges and ongoing efforts within the React project. Notably, issues such as #30953 and #30799 reflect difficulties with TypeScript definitions and infinite refetching in React 19. Compatibility problems with eslint
v9 (#30932) and asynchronous rendering bugs (#30886) further emphasize the complexity of the transition to the new version.
Josh Story (gnoff)
Sebastian Markbåge (sebmarkbage)
Hendrik Liebau (unstubbable)
春希与子晴 (sweetliquid)
Jan Kassens (kassens)
Rick Hanlon (rickhanlonii)
Michael Vitousek (mvitousek)
Joseph Savona (josephsavona)
The team is actively addressing performance and reliability issues, particularly in rendering systems like Flight and profiling tools.
eslint
v9 are preventing upgrades for some users.Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 7 | 11 | 10 | 0 | 1 |
30 Days | 29 | 31 | 81 | 1 | 1 |
90 Days | 121 | 95 | 338 | 8 | 1 |
1 Year | 371 | 199 | 1308 | 30 | 1 |
All Time | 13115 | 12461 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Sebastian Markbåge | 3 | 55/54/0 | 72 | 184 | 77079 | |
Andrew Clark | 3 | 7/7/0 | 17 | 102 | 37223 | |
Joseph Savona | 21 | 36/28/4 | 96 | 232 | 26280 | |
Michael Vitousek | 14 | 14/6/4 | 36 | 91 | 12673 | |
Mofei Zhang | 3 | 7/7/0 | 9 | 169 | 10168 | |
Ricky | 2 | 0/0/0 | 3 | 48 | 7148 | |
Josh Story | 2 | 11/11/0 | 19 | 64 | 4722 | |
None (dependabot[bot]) | 7 | 9/0/2 | 7 | 9 | 4046 | |
lauren | 4 | 9/7/0 | 13 | 51 | 844 | |
Ruslan Lesiutin | 1 | 9/8/1 | 8 | 24 | 647 | |
Sam Zhou | 2 | 2/2/0 | 4 | 41 | 373 | |
Jan Kassens | 1 | 1/1/0 | 1 | 13 | 371 | |
Hendrik Liebau | 1 | 1/1/0 | 1 | 8 | 368 | |
ling1726 | 1 | 1/1/0 | 1 | 3 | 73 | |
Alex Hunt | 1 | 0/0/0 | 1 | 2 | 28 | |
Benoit Girard | 1 | 0/0/0 | 1 | 2 | 12 | |
Sebastian "Sebbie" Silbermann | 1 | 4/2/0 | 2 | 2 | 4 | |
Rune Botten | 1 | 1/1/0 | 1 | 1 | 2 | |
Riccardo Cipolleschi (cipolleschi) | 1 | 1/0/0 | 1 | 1 | 2 | |
春希与子晴 | 1 | 0/0/0 | 1 | 1 | 2 | |
Brendan Abbott (brendo) | 0 | 1/0/0 | 0 | 0 | 0 | |
Derick Blacido (dconer) | 0 | 1/0/1 | 0 | 0 | 0 | |
Alexander Savelyev (vordgi) | 0 | 3/0/1 | 0 | 0 | 0 | |
Sathya Gunasekaran (gsathya) | 0 | 1/0/0 | 0 | 0 | 0 | |
BIKI DAS (Biki-das) | 0 | 2/0/0 | 0 | 0 | 0 | |
None (alen1238) | 0 | 1/0/1 | 0 | 0 | 0 | |
Jack Pope (jackpope) | 0 | 1/0/0 | 0 | 0 | 0 | |
Samuel Susla (sammy-SC) | 0 | 1/0/0 | 0 | 0 | 0 | |
LoganDark (LoganDark) | 0 | 1/0/0 | 0 | 0 | 0 | |
John Paul (RJohnPaul) | 0 | 1/0/1 | 0 | 0 | 0 | |
Ravi (Ravi80595) | 0 | 1/0/0 | 0 | 0 | 0 | |
Hyein Jeong (happyhyep) | 0 | 2/0/2 | 0 | 0 | 0 | |
Chen Reuven (ChenReuven) | 0 | 1/0/0 | 0 | 0 | 0 | |
Rizwan (rizwan-r-r) | 0 | 1/0/1 | 0 | 0 | 0 | |
michael faith (michaelfaith) | 0 | 1/0/0 | 0 | 0 | 0 | |
Arman Tang (Arman19941113) | 0 | 1/0/1 | 0 | 0 | 0 | |
Chandan Panigrahi (chandan-git04) | 0 | 1/0/1 | 0 | 0 | 0 | |
Shashank yadahalli (its-shashankY) | 0 | 1/0/1 | 0 | 0 | 0 | |
None (Aayushkrprasad) | 0 | 1/0/1 | 0 | 0 | 0 | |
None (Princefuzyfzr6) | 0 | 1/0/1 | 0 | 0 | 0 | |
None (shubhanshu7532) | 0 | 1/0/1 | 0 | 0 | 0 | |
None (db-efficienteng) | 0 | 1/0/1 | 0 | 0 | 0 | |
Kalhara Batangala (KalharaBatangala) | 0 | 1/0/1 | 0 | 0 | 0 | |
Voltaged (VoltagedDebunked) | 0 | 1/0/1 | 0 | 0 | 0 | |
Tyler Scott Williams (coolsoftwaretyler) | 0 | 2/0/2 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The React GitHub repository has seen significant recent activity, with 654 open issues and numerous discussions surrounding the upcoming React 19 release. Notably, several issues highlight concerns with the new features and changes introduced in this version, particularly regarding the handling of hooks, performance discrepancies, and the integration of custom elements. There is a clear trend of users experiencing unexpected behaviors with use()
and Suspense
, as well as challenges related to state management in complex scenarios.
Several issues also indicate a growing frustration with the removal of certain features like findDOMNode
, which has prompted discussions about alternative solutions for accessing DOM elements. The community is actively engaging with these changes, suggesting workarounds and expressing concerns about the implications for existing codebases.
Issue #30953: [React 19] Cannot find name 'dialog'
Issue #30932: cannot upgrade eslint
to v9 due to eslint-plugin-react-hooks
peer dependencies
eslint
v9 and eslint-plugin-react-hooks
are preventing upgrades.Issue #30898: [DevTools Bug] The "path" argument must be of type string. Received undefined
Issue #30886: Bug: First render doesn't create DOM nodes before next JavaScript is executed in script
Issue #30872: Bug: Footer Unknown Text Found
Issue #30799: [React 19] Upgrading React causes infinite refetching
Issue #30782: [Compiler Bug]: eslint-plugin-react-compiler errors when updating initialization of ref.current
Issue #30754: [DevTools Bug]: Inconsistent behavior; React dev tools does not recognize a react website; 'service worker(inactive)'
Issue #30687: Bug: Object.keys inside the Shallow Equal can be improved
Issue #30605: Bug: SetState Calls not being batched inside Promise calls/micro Task
The recent issues reflect several key themes:
This analysis indicates that while there is excitement around new features in React, there are also significant challenges that need to be addressed to ensure smooth transitions for developers upgrading their applications.
The analysis of the pull requests (PRs) for the React project reveals a diverse range of enhancements, bug fixes, and optimizations aimed at improving the framework's functionality and developer experience. The current state shows a significant number of open PRs, indicating ongoing development and community engagement.
PR #30964: Added comments to clarify key handling in JSX and createElement
. This PR enhances documentation for better understanding of key reuse in JSX.
PR #30960: Introduced enableComponentPerformanceTrack
flag to gate a new timeline profiler. This change aims to improve performance tracking in React's experimental builds.
PR #30956: Draft PR for JSX outlining which separates nested JSX into a function. This could enhance readability and maintainability of JSX code.
PR #30944: Bumped express
from 4.17.1 to 4.20.0 in /fixtures/dom
. This is a routine dependency update that may include important security fixes.
PR #30941: Similar to #30944, this PR bumps express
from 4.16.2 to 4.20.0 but in a different fixture directory.
PR #30940: Another bump for express
, this time from 4.16.2 to 4.20.0 in /fixtures/packaging/brunch/prod
.
PR #30939: Bumped express
from 4.15.4 to 4.20.0 in /fixtures/attribute-behavior
.
PR #30937: Bumped express
from 4.14.0 to 4.20.0 in /fixtures/fiber-debugger
.
PR #30924: Fixed error message for event handler messages, clarifying the context for developers.
PR #30922: Implemented support for hoisted and recursive functions in the compiler, enhancing function handling capabilities.
PR #30917: Allowed all hooks to take callbacks accessing refs while banning direct ref value arguments, improving safety in hook usage.
PR #30880: Fixed value formatting of proxies of class instances, addressing issues with how class instance proxies were represented.
PR #30877: Fixed higher priority lane call and added tests for fiber lane functionality.
PR #30791: Reproduced a false positive violation related to ref-in-render scenarios, indicating ongoing efforts to refine error handling.
PR #30810: Added tests for suppress reset property, enhancing form behavior control.
PR #30815: Inferred optional manual memo dependencies during memoization processes.
PR #30805: Introduced hidden-connected mode for Activity, allowing passive effects to remain connected.
PR #30728: Implemented logic to prevent cache resets on size changes, addressing potential bugs related to state management.
PR #30752: Fixed issues with controlled number fields upon action, ensuring values are retained correctly across interactions.
PR #30736: Supported nesting in existing RSC renderers, enhancing rendering capabilities within React's architecture.
PR #30728: Introduced a suppressReset prop to control form reset behavior after actions are completed.
PR #30600: Bumped webpack
from 5.x versions as part of routine maintenance and security updates.
PR #30597: Chore PR focusing on fixing typos and documentation improvements across the codebase.
PR #30596 & PR #30564: Refactor efforts aimed at improving console patching mechanisms within React DevTools.
Multiple PRs related to ESLint plugin updates, such as adding flat config support and improving error handling in hooks.
The current set of open pull requests indicates an active development cycle within the React project, with contributions spanning various aspects of the framework—from core functionality improvements to dependency management and documentation enhancements.
Performance Improvements:
enableComponentPerformanceTrack
(#30960) and the implementation of JSX inlining optimizations (#30867). These changes aim to reduce runtime overhead and improve user experience by making React applications more efficient.Refinement of Error Handling:
Dependency Management:
express
and webpack
). This reflects a commitment to maintaining security standards and ensuring compatibility with the latest library versions.Documentation Enhancements:
Community Engagement and Collaboration:
Overall, the current landscape of pull requests within the React repository showcases an engaged community focused on enhancing both performance and usability while maintaining robust documentation practices. The diverse range of topics being addressed reflects ongoing efforts to adapt React to modern development needs while ensuring stability and clarity for its users.
Josh Story (gnoff)
enableSiblingPrerendering
in experimental channel (#30952): Disabled a feature until further testing is completed.Sebastian Markbåge (sebmarkbage)
Hendrik Liebau (unstubbable)
async
flag in client manifest (#30959): Updated server reference metadata handling for async modules.春希与子晴 (sweetliquid)
Jan Kassens (kassens)
Rick Hanlon (rickhanlonii)
Michael Vitousek (mvitousek)
Joseph Savona (josephsavona)
The development team is actively engaged in refining the React library's performance and usability. Their collaborative efforts are directed towards optimizing rendering processes, improving profiling tools, and ensuring robust handling of asynchronous operations. This ongoing commitment to quality enhancement reflects a proactive approach to software development within the React ecosystem.