Skip to content 16.3.0 (March 29, 2018)
React
- Add a new officially supported context API. (@acdlite in #11818)
- Add a new
React.createRef() API as an ergonomic alternative to callback refs. (@trueadm in #12162)
- Add a new
React.forwardRef() API to let components forward their refs to a child. (@bvaughn in #12346)
- Fix a false positive warning in IE11 when using
React.Fragment. (@XaveScor in #11823)
- Replace
React.unstable_AsyncComponent with React.unstable_AsyncMode. (@acdlite in #12117)
- Improve the error message when calling
setState() on an unmounted component. (@sophiebits in #12347)
React DOM
- Add a new
getDerivedStateFromProps() lifecycle and UNSAFE_ aliases for the legacy lifecycles. (@bvaughn in #12028)
- Add a new
getSnapshotBeforeUpdate() lifecycle. (@bvaughn in #12404)
- Add a new
<React.StrictMode> wrapper to help prepare apps for async rendering. (@bvaughn in #12083)
- Add support for
onLoad and onError events on the <link> tag. (@roderickhsiao in #11825)
- Add support for
noModule boolean attribute on the <script> tag. (@aweary in #11900)
- Fix minor DOM input bugs in IE and Safari. (@nhunzaker in #11534)
- Correctly detect Ctrl + Enter in
onKeyPress in more browsers. (@nstraub in #10514)
- Fix containing elements getting focused on SSR markup mismatch. (@koba04 in #11737)
- Fix
value and defaultValue to ignore Symbol values. (@nhunzaker in #11741)
- Fix refs to class components not getting cleaned up when the attribute is removed. (@bvaughn in #12178)
- Fix an IE/Edge issue when rendering inputs into a different window. (@M-ZubairAhmed in #11870)
- Throw with a meaningful message if the component runs after jsdom has been destroyed. (@gaearon in #11677)
- Don't crash if there is a global variable called
opera with a null value. @alisherdavronov in #11854)
- Don't check for old versions of Opera. (@skiritsis in #11921)
- Deduplicate warning messages about
<option selected>. (@watadarkstar in #11821)
- Deduplicate warning messages about invalid callback. (@yenshih in #11833)
- Deprecate
ReactDOM.unstable_createPortal() in favor of ReactDOM.createPortal(). (@prometheansacrifice in #11747)
- Don't emit User Timing entries for context types. (@abhaynikam in #12250)
- Improve the error message when context consumer child isn't a function. (@raunofreiberg in #12267)
- Improve the error message when adding a ref to a functional component. (@skiritsis in #11782)
React DOM Server
- Prevent an infinite loop when attempting to render portals with SSR. (@gaearon in #11709)
- Warn if a class doesn't extend
React.Component. (@wyze in #11993)
- Fix an issue with
this.state of different components getting mixed up. (@sophiebits in #12323)
- Provide a better message when component type is undefined. (@HeroProtagonist in #11966)
React Test Renderer
- Fix handling of fragments in
toTree(). (@maciej-ka in #12107 and @gaearon in #12154)
- Shallow renderer should assign state to
null for components that don't set it. (@jwbay in #11965)
- Shallow renderer should filter legacy context according to
contextTypes. (@koba04 in #11922)
- Add an unstable API for testing asynchronous rendering. (@acdlite in #12478)
React Is (New)
- First release of the new package that libraries can use to detect different React node types. (@bvaughn in #12199)
- Add
ReactIs.isValidElementType() to help higher-order components validate their inputs. (@jamesreggio in #12483)
React Lifecycles Compat (New)
Create Subscription (New)
React Reconciler (Experimental)
- Expose
react-reconciler/persistent for building renderers that use persistent data structures. (@gaearon in #12156)
- Pass host context to
finalizeInitialChildren(). (@jquense in #11970)
- Remove
useSyncScheduling from the host config. (@acdlite in #11771)
React Call Return (Experimental)