NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1974 most downloaded on pub.dev
Bindings of the ReactJS library for building interactive interfaces.
Last release 7 months ago
12 Mar 2026
Ships fairly regularly
a new release about every 4 months
Most releases are documented
notes for 47 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
119 releases · first in 2013
Build: (waiting for build to complete) Skynet Results: (waiting for Skynet results) Pipeline: (waiting for pipeline to start) This patch release inclu
Build: (waiting for build to complete)
Skynet Results: (waiting for Skynet results)
Pipeline: (waiting for pipeline to start)
This patch release includes the following changes:
#426 Update dependencies to allow analyzer 10
#427 RM-351452 Release react-dart 7.3.2
Notes created on Thursday, March 12 12:22 PM UTC
Build: (waiting for build to complete) Skynet Results: (waiting for Skynet results) Pipeline: (waiting for pipeline to start) This patch release inclu
One column per quarter.
Build: (waiting for build to complete)
Skynet Results: (waiting for Skynet results)
Pipeline: (waiting for pipeline to start)
This patch release includes the following changes:
#420 FED-3927 Fix failing test on Dart 3
#421 no_entrypoint_imports
#422 FED-4060 Set up gha-dart-oss
#423 RM-327375 Release react-dart 7.3.1
Notes created on Monday, August 25 07:19 PM UTC
Build: (waiting for build to complete) Skynet Results: (waiting for Skynet results) Pipeline: (waiting for pipeline to start) This minor release inclu
Build: (waiting for build to complete)
Skynet Results: (waiting for Skynet results)
Pipeline: (waiting for pipeline to start)
This minor release includes the following changes:
#410 Raise the build_web_compilers dependency max to v5.0.0
#411 Raise the meta dependency min to v1.16.0
#415 RM-288881 Release react-dart 7.3.0
Notes created on Thursday, April 17 10:58 PM UTC
<3.0.0 to <4.0.0, run CI on Dart 3Build: (waiting for build to complete) Skynet Results: (waiting for Skynet results) Pipeline: (waiting for pipeline to start) This minor release inclu
Build: (waiting for build to complete)
Skynet Results: (waiting for Skynet results)
Pipeline: (waiting for pipeline to start)
This minor release includes the following changes:
Notes created on Monday, October 07 09:41 PM UTC
Build: (waiting for build to complete) Skynet Results: (waiting for Skynet results) Pipeline: (waiting for pipeline to start) This patch release inclu
Build: (waiting for build to complete)
Skynet Results: (waiting for Skynet results)
Pipeline: (waiting for pipeline to start)
This patch release includes the following changes:
Notes created on Tuesday, July 09 04:44 PM UTC
Build: https://ci.webfilings.com/build/6021395 Skynet Results: https://wf-skynet-hrd.appspot.com/apps/test/smithy/6021395/latest Pipeline: https://w-r
Build: https://ci.webfilings.com/build/6021395
Skynet Results: https://wf-skynet-hrd.appspot.com/apps/test/smithy/6021395/latest
Pipeline: https://w-rmconsole.appspot.com/release/pipeline/5557689202114560/
This patch release includes the following changes:
#400 Add CDN publish back temporarily
#401 RM-264468 Release react-dart 7.1.2
Notes created on Friday, June 07 06:38 PM UTC
Build: https://ci.webfilings.com/build/5608638 Skynet Results: https://wf-skynet-hrd.appspot.com/apps/test/smithy/5608638/latest Pipeline: https://w-r
Build: https://ci.webfilings.com/build/5608638
Skynet Results: https://wf-skynet-hrd.appspot.com/apps/test/smithy/5608638/latest
Pipeline: https://w-rmconsole.appspot.com/release/pipeline/5500228848451584/
This minor release includes the following changes:
Notes created on Monday, March 04 07:03 PM UTC
Add a new ReactNode type, which aliases Object? to mimic the React JS Typescript type.
Build: https://ci.webfilings.com/build/5181196 Skynet Results: https://wf-skynet-hrd.appspot.com/apps/test/smithy/5181196/latest Pipeline: https://w-r
Build: https://ci.webfilings.com/build/5181196
Skynet Results: https://wf-skynet-hrd.appspot.com/apps/test/smithy/5181196/latest
Pipeline: https://w-rmconsole.appspot.com/release/pipeline/5755607302930432/
This major release includes the following changes:
#378 Dart 2.19
#379 FED-1850 Add Dart 2.19 to GHA matrix
#380 RM-217585 FED-1716 Release react-dart 7.0.0 (null-safety)
Notes created on Friday, November 10 05:49 PM UTC
[#372], [#374] Add and update deprecations in preparation for 7.0.0 release, add WIP changelog
htmlMain - replacement for deprecated react.main, to be removed in 7.0.0useRefInit - useRef can't be used to create non-nullable-typed refs, but useRefInit can[#366] Fix lints and eliminate most implicit casts
[#357] Export Suspense component
[#350] Return jsUndefined instead of null when children prop is empty
jsUndefined instead of null when children prop is empty[#344] Fix identityHashCode error when forwarding props containing JSX children
[#336] Publish JS bundles to Workiva CDN
[#333] Remove old, unused file from bin/
[#328] Work around $identityHash being added to JS objects passed into jsifyAndAllowInterop
[#308] Bump elliptic from 6.5.3 to 6.5.4
[#321] Fix missing Dart component names in error boundary componentStack
componentStack[#319] Add baseURI polyfill for IE 11 compatibility on Dart 2.13.
baseURI polyfill for IE 11 compatibility on Dart 2.13.- [#316] Export generateJsProps.
generateJsProps.[#305] Fix JsBackedMap for Dart 2.12.
JsBackedMap for Dart 2.12.> __Full List of Breaking Changes__
This stable, major release of react includes:
The underlying .js files provided by this package are now ReactJS version 17.0.1.
[#289] Update most deprecations that were slated for removal in v6.0.0 to be slated for removal in v7.0.0 instead. To keep the migration to v6.0.0 as…
SyntheticEvent.isFormEvent. Because form events do not exist as their own type in ReactJS, this helper will be removed in v6.0.0. Instead, check for the expected form event types.[#282] Add SyntheticEvent helpers that eliminate the need to use synthetic event class constructors. Additionally, added utilities to assist in type c
SyntheticEvent helpers that eliminate the need to use synthetic event class constructors. Additionally, added utilities to assist in type checking events without manually using the is keyword.[#280] Update React dev JS files to include a workaround to a DDC bug when using Chrome 86+ (fixed in Dart 2.9.3)
[#275] Add forwardRef2 / memo2 to fix _"jsification"_ of Dart props
forwardRef2 / memo2 to fix "jsification" of Dart props
forwardRef / memo3.1.0_Accidentally overlooked when Component was deprecated_
propTypes from Dart2js output.
registerComponent.
Component was deprecateduseImperativeHandle hook[#253] Deprecate setClientConfiguration.
New Features
🎉 🎉 🎉 Support for function components, memo and hooks!!! 🎉 🎉 🎉
Sooooo much work from so many amazing people made this possible, but to summarize:
memo higher order component<p><br>It works like this...</p>
Define the component:
import 'package:react/react.dart' as react;
final SomeWidget = react.registerFunctionComponent(_SomeWidget, displayName: 'SomeWidget');
_SomeWidget(Map props) {
// You can use hooks in here, too!
return react.div({}, [
// Some children...
]);
}
Render the component (exact same consumer API as a class-based component):
import 'package:react/react_dom.dart' as react_dom;
import 'some_widget.dart'; // Where your component is defined
main() {
final renderedWidget = SomeWidget({
// put some props here
}, [
// put some children here!
]);
react_dom.render(renderedWidget, querySelector('#idOfSomeNodeInTheDom'));
}
Check out all the function component and hooks examples for more information!
Fixes / Updates
setClientConfiguration.
JsBackedMap.values compatible with MSIE 11[#244] Add support for HTML Composition events
New Features
SyntheticEvent.persist()Fixes / Updates
Component.render() from being swallowedJS Dependency Updates
6.4.0 to 6.4.14.17.15 to 4.17.19Unpin the react-redux JS dependency to allow versions 7.1.1 and higher.
7.1.1 and higher.over_react_redux (like the one that required the 5.2.1 hotfix).Temporarily pin react-redux dependency to version 7.1.0 to prevent widespread test failures as a result of `Provider` being converted into a function
7.1.0 to prevent widespread test failures as a result of
Provider being converted into a function component with hooks.[#238] Fix js package security vulnerability
setStateWithUpdatergetDerivedStateFromError interopcomponentZone to allow overriding the zone in which Component2 lifecycle methods are run, for testingImprove the documentation for deprecated Component2 lifecycle methods.
Component2 lifecycle methods.The new Component2 class replaces the now deprecated Component class.
Full ReactJS 16.x Component Lifecycle Support
Component2 class replaces the now deprecated Component class.
ReactJsComponentFactoryProxy makes it easy to use JS components with Dart!
componentWillMount</s> => componentDidMountcomponentWillReceiveProps</s> => getDerivedStateFromProps (new)componentWillUpdate</s> => getSnapshotBeforeUpdate (new)componentDidCatch / getDerivedStateFromError (new)
Improved, stable Context API
New and improved ref API: React.createRef
React Redux is now included in the JS bundles and exposed via window.ReactRedux.
Pull in 4.9.2 changes that were accidentally reverted as part of 5.0.0.
Pull in 4.9.2 changes that were accidentally reverted as part of 5.0.0.
- [#220] Fix bug where reading
dataTransfersometimes threw during synthetic event conversion
> __Full List of Breaking Changes__
ReactJS 16.x Support
.js files provided by this package are now ReactJS version 16.5.1.0.Nothing published for this version
Nothing published for this version
[#220] Fix bug where reading dataTransfer sometimes threw during synthetic event conversion
dataTransfer sometimes threw during synthetic event conversion[#205] Fix context setter typing to match getter and not fail implicit_casts: false
context setter typing to match getter and not fail implicit_casts: false[#202] Add bindings for transition / animation events
[#197] Fix Dart component callback refs with typed arguments not working in Dart 2 dynamic ref argument (worked): `dart Foo({'ref': (ref) => _fooRef =
Foo({'ref': (ref) => _fooRef = ref})
non-dynamic ref argument (did not work):Foo({'ref': (FooComponent ref) => _fooRef = ref})
[#181]: Remove unnecessary zoning on event handlers that interferes with testing
Handlers triggered by real events will now always be called in the root zone.
In most cases, handlers were already running in the root zone, so this should not affect behavior. See [#179] for more details.
When testing, you previous had to bind event handlers or callbacks triggered by event handlers to zones when using expect or expectAsync.
var renderedInstance = renderIntoDocument(
Button({}, {
'onButtonPress': Zone.current.bindUnaryCallback(expectAsync((e) {
// ...
}, reason: 'onButtonPress not called')),
'onClick': Zone.current.bindUnaryCallback((e) {
expect(e.defaultPrevented, isTrue);
}),
}),
);
// ...
Simulate.click(buttonNode);
Now, handlers will be called in the zone they're triggered from, which makes testing events easier and more predictable:
var renderedInstance = renderIntoDocument(
Button({}, {
'onButtonPress': expectAsync((e) {
// ...
}, reason: 'onButtonPress not called'),
'onClick': (e) {
expect(e.defaultPrevented, isTrue);
},
}),
);
// ...
Simulate.click(buttonNode);
Use newObject() from dart:js_util instead
emptyJsMap:
newObject() from dart:js_util instead[#162]: Add jsifyAndAllowInterop, deprecate some obsolete JS utils:
jsifyAndAllowInterop, deprecate some obsolete JS utils:
jsify, setProperty, and getProperty; use versions from dart:js_util insteadEmptyObject; use newObject from dart:js_util instead> These deprecations are being put in place to prepare consumers for the upcoming 5.0.0 release which will include support for React JS version 16.x
[#162]: Important Deprecations
These deprecations are being put in place to prepare consumers for the upcoming
5.0.0release which will include support for React JS version 16.x
react_server.dart and Dart VM server-side rendering
react_dom_server.dart, though untested, is still in placecontext APIsisMountedreact_test_utils.SimulateNativeComponent.refsComponent.replaceStatesComponent.bindComponent.transferComponentState[#155]: Clean the lint trap.
[#159]: Update the type for [unconverted js style prop map][#153] to be Map .
style prop map][#153] to be Map<String, dynamic>.[#152]: Format all files using dartfmt.
dartfmt.unconvertJsProps utility function.Improvement: Dart 2 compatible!
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →