1.4.4 (June 13th, 2022)
- Added Luau analysis to the repository (#372)
- Removed the warning for
setStateon unmounted components to eliminate false positive warnings, matching upstream React (#323).
1.4.3 (October 8th, 2021)
- Reduce strictness to unblock downstream users
1.4.2 (October 6th, 2021)
- Fixed forwardRef doc code referencing React instead of Roact (#310).
- Fixed
Listeners can only be disconnected oncefrom context consumers. (#320)
1.4.1 (August 12th, 2021)
- Fixed a bug where the Roact tree could get into a broken state when using callbacks passed to a child component. Updated the tempFixUpdateChildrenReEntrancy config value to also handle this case. (#315)
- Fixed forwardRef description (#312).
1.4.0 (June 3rd, 2021)
- Introduce forwardRef (#307).
- Fixed a bug where the Roact tree could get into a broken state when processing changes to child instances outside the standard lifecycle.
- This change is behind the config value tempFixUpdateChildrenReEntrancy (#301)
- Added color schemes for documentation based on user preference (#290).
- Fixed stack trace level when throwing an error in
createReconciler(#297). - Optimized the memory usage of 'createSignal' implementation. (#304)
1.3.1 (November 19th, 2020)
- Added component name to property validation error message (#275)
1.3.0 (May 5th, 2020)
- Added Contexts, which enables easy handling of items that are provided and consumed throughout the tree.
1.2.0 (September 6th, 2019)
- Fixed a bug where derived state was lost when assigning directly to state in init (#232)
- Improved the error message when an invalid changed hook name is used. (#216)
- Fixed a bug where fragments could not be used as children of an element or another fragment. (#214)
1.1.0 (June 3rd, 2019)
- Fixed an issue where updating a host element with children to an element with
nilchildren caused the old children to not be unmounted. (#210) - Added
Roact.joinBindings, which allows combining multiple bindings into a single binding that can be mapped. (#208)
This release significantly reworks Roact internals to enable new features and optimizations.
- Added Fragments, which reduces the need for many container instances. (#172)
- Added Bindings, which enables easy surgical updates to instances without using refs. (#159)
- Added opt-in runtime type checking across the entire Roact API. (#188)
- Added support for prop validation akin to React's
propTypes. - Changed
Component:setStateto be deferred if it's called while Roact is updating a component. (#183) - Changed events connected via
Roact.EventandRoact.Changetriggered by a Roact update to be deferred until Roact is done updating the instance. - Improved and consolidated terminology across the board.
- Improved errors to be much more informative and clear.
- Deprecated
Roact.reconcilein favor ofRoact.update(#194) - Removed some undocumented APIs:
Roact.getGlobalConfigValue, which let users read the current internal configuration.Roact.Element, which let users figure out whether something is a Roact element. We'll introduce a proper type-checking API at a later date.
- Renamed
Roact.reifytoRoact.mountandRoact.teardowntoRoact.unmount(#82)- The old methods are still present as aliases, but will output a warning when used.
- Added
Roact.Changefor subscribing toGetPropertyChangedSignal(#51) - Added the static lifecycle method
getDerivedStateFromProps(#57) - Allow canceling render by returning nil from setState callback (#64)
- Added
defaultPropsvalue on stateful components to define values for props that aren't specified (#79) - Added
getElementTraceback(#81, #93) - Added
createRef(#70, #92) - Added a warning when an element changes type during reconciliation (#88, #137)
- Ref switching now occurs in one pass, which should fix edge cases where the result of a ref is
nil, especially in property changed events (#98) setStatecan now be called insideinitandwillUpdate. Instead of triggering a new render, it will affect the currently scheduled one. (#139)- Roll back changes that allowed
setStateto be called insidewillUpdate, which created state update scenarios with difficult-to-determine behavior. (#157) - By default, disable the warning for an element changing types during reconciliation (#168)
- Removed
is*Elementmethods, this is unlikely to affect anyone (#50) - Added new global configuration API for debug settings (#46)
- Added
Roact.reconcile, which will be in the guide soon. It's useful for embedding Roact into existing projects! (#44) - Added function variant of
setStatein preparation for async rendering (#39) - Added
Roact.Noneto allow removing values from state usingsetState(#38) setStatewill now throw errors if called at the wrong time (#23)- Throw a nicer error when failing to set primitive properties (#21)
- If a bool is detected as a child of a component, it will be ignored, allowing for a shorter conditional rendering syntax! (#15)
- Error messages should make more sense in general
- Got rid of installer scripts in favor of regular model files
- Initial pre-release build