0.3
Breaking Changes
For supporting garbage collection in the future there is a slight breaking change that Snapshot
's will only be valid for the duration of the callback or render. A new retain()
API can be used to persist them longer. This is not enforced yet, but Recoil will now provide a warning in dev-mode if a Snapshot
is used past its lifetime. (#1006)
New Features / Improvements
- Add
override
prop to<RecoilRoot>
(#973) - Add
getCallback()
to selector evaluation interface (#989) - Improved TypeScript and Flow typing for
Loadable
s (#966, #1022)
Performance Optimizations
- Improve scalability (time and memory) of Atom families by cleaning up a legacy feature.
Bug Fixes
- Throwing an error in an async selector should be properly caught by
<ErrorBoundary>
's (#998, #1017) - Fix for Atom Effects
onSet()
should not be called when triggered fromsetSelf()
initializing with a Promise or from the sameonSet()
handler. (#974, #979, #953, #986) - Improved support for Safari (#967, #609)
- Objects stored in selectors are properly frozen in dev mode (#911)