All Versions
Latest Version
Avg Release Cycle
27 days
Latest Release
1047 days ago

Changelog History
Page 1

  • v7.0.5 Changes

    November 12, 2020

    Patch Changes

    2f3dcb27 Thanks @FredyC! - Fix names of UMD exports #2517

    โšก๏ธ Updated dependencies [2f3dcb27, 79a09f49]:

  • v7.0.4 Changes

    November 07, 2020

    Patch Changes

    ๐Ÿฑ 8bbbc7c0 Thanks @FredyC! - Fix names of dist files (for real now). Third time is the charm ๐Ÿ˜…

    โšก๏ธ Updated dependencies [8bbbc7c0]:

  • v7.0.3 Changes

    November 07, 2020

    Patch Changes

    ๐Ÿ“ฆ b7aa9d35 Thanks @FredyC! - Fixed wrong package name for dist files

    โšก๏ธ Updated dependencies [b7aa9d35]:

  • v7.0.2 Changes

    November 06, 2020

    Patch Changes

    ๐Ÿš€ 5239db80 Thanks @FredyC! - Fixed release with missing dist files

    โšก๏ธ Updated dependencies [5239db80]:

  • v7.0.1 Changes

    November 06, 2020

    Patch Changes

    ๐Ÿ’ป 81a2f865 Thanks @FredyC! - ESM bundles without NODE_ENV present are available in dist folder. This useful for consumption in browser environment that supports ESM Choose either esm.production.min.js or esm.development.js from dist folder.

    โšก๏ธ Updated dependencies [81a2f865]:

  • v6.0.4 Changes

    November 12, 2020

    Patch Changes

  • v6.0.2 Changes

    November 02, 2020

    Patch Changes

    ๐Ÿ›  b5d64d19 #2548 Thanks @urugator! - Fixed 2542, makeAutoObservable not respecting deep option @urugator

    ๐Ÿ‘ท f4c22925 #2582 Thanks @tomenden! - Support running in a web-worker

  • v6.0.1 Changes

    October 05, 2020
    • ๐Ÿ›  Fixed issue in TS typings of makeObservable in combination with a member named toString()
  • v6.0.0 Changes

    September 30, 2020

    ๐Ÿ†• New features

    • ๐Ÿ›  [makeObservable(target, annotations)](./docs/ is now the recommended way to make objects with a fixed shape observable, such as classes.
    • ๐Ÿ“„ [makeAutoObservable(target)](./docs/ will automatically determine the annotations used by makeObservable. Methods will be marked as 'autoAction', so that they can be used both from a computed value or as standalone method.
    • โฌ†๏ธ MobX 6 can be used in both modern environments, and environments that don't support Proxy. So both MobX 4 and 5 users can upgrade to 6. See [proxy support](./docs/ for more details.
    • ๐Ÿ‘ observable.array now supports { proxy: false } as option.
    • ๐Ÿ‘€ reaction's effect function now receives the previous value seen by the reaction as second argument.
    • ๐Ÿ“„ flow can now be used as annotation as well. You might need flowResult in case you use TypeScript to extract the correct result type. [details](./docs/

    ๐Ÿ’ฅ Breaking changes

    ๐Ÿ”„ Changes that might affect you

    • ๐Ÿšš The decorate API has been removed, and needs to be replaced by makeObservable in the constructor of the targeted class. It accepts the same arguments. The mobx-undecorate can transform this automatically.
    • When using extendObservable / observable, fields that contained functions used to be turned into observables. This is no longer the case, they will be converted into autoActions.
    • ๐Ÿ”ง [Strict mode](./docs/ for actions is now enabled by default in observed mode.
    • toJS no longer takes any options. It no longer converts Maps and Sets to plain data structures. Generic, flexible serialization of data structures is out of scope for the MobX project, and writing custom serialization methods is a much more scalable approach to serialization (tip: leverage computeds to define how class instances should be serialized).
    • The methods intercept and observe are no longer exposed on observable arrays, maps and boxed observables. Import them as utility from mobx instead: import { observe, intercept } from "mobx", and pass the collection as first argument: observer(collection, callback). Note that we still recommend to avoid these APIs.
    • observableMap.toPOJO(), observableMap.toJS() have been dropped. Use new Map(observableMap) instead if you want to convert an observable map to a plain Map shallowly.
    • ๐Ÿ‘ observableMap.toJSON() now returns an entries array rather than a new Map, to better support serialization.
    • observableSet.toJS() has been dropped. Use new Set(observableSet) instead if you want to convert an observable Set to a plain Set shallowly.
    • ๐Ÿ‘ observableSet.toJSON() now returns an array rather than a new Set, to better support serialization.
    • Sorting or reversing an observableArray in a derivation (without slicing first) will now throw rather than warn. In contrast, it is now allowed to sort or reverse observable arrays in-place, as long as it happens in an action.
    • isArrayLike is no longer exposed as utility. Use Array.isArray(x) || isObservableArray(x) instead.

    Obscure things that don't work anymore, but that probably won't affect you

    • It is no longer possible to re-decorate a field (through either @observable or makeObservable) that is already declared in a super class.
    • ๐Ÿ‘ runInAction no longer supports passing a name as first argument. Name the original function or use action(name, fn)() if you care about the debug name.
    • computed(getterFn, setterFn) no longer accepts a setter function as a second argument. Use the set option instead: computed(getterFn, { set: setterFn }).
    • ๐Ÿ‘ In observable arrays, for findIndex / find method, the offset argument (the third one) is no longer supported, to be consistent with ES arrays.
    • ๐Ÿ”ง The option computedConfigurable of configure is no longer supported as it is now the default.
    • ๐Ÿšš observableArray.toJS() has been removed, use observableArray.slice() instead, which does the same.
    • Killed support for the IGNORE_MOBX_MINIFY_WARNING environment flag.
    • _allowStateChangesInComputation(fn) is no longer needed, use runInAction(fn) instead.
    • In computed, the when predicate (first arg), and reaction predicate (first arg) it is now forbidden to directly change state. State changes should be done in their effect functions, or otherwise at least wrapped in runInAction (only the state change, not the observables you want to track!). Note that this is still an anti-pattern.
    • ๐Ÿ‘ The observableArray.get() and observableArray.set() methods are no longer supported.
    • The IObservableObject interface is no longer exported from MobX.
    • ๐Ÿ‘€ The second argument to the reaction effect function, the disposer object, is now passed in as third argument. The second argument is now the previous value seen by the reaction.
    • ๐Ÿ‘€ onBecomeObserved / onBecomeUnobserved will now only trigger for observables that are actually used by a reaction (see #2309 for background).

    ๐Ÿ›  Fixes

    • #2326: Incorrect this for array callbacks such as in array.forEach
    • ๐Ÿ›  #2379: Fixed issue with array.concat
    • ๐Ÿ›  #2309: Fixed several inconsistencies between keepAlive'd computed values and on(un)BecomeObserved
    • ๐Ÿ›  Fixed several inconsistencies when on(un)BecomeObserved was triggered for observables changed in actions without having an observer
  • v5.15.7 Changes

    September 19, 2020
    • ๐Ÿ‘• Fixed 2438, factory types caused eslint warnings, by @amareis through 2439
    • ๐Ÿ›  Fixed 2432, array.reduce without initial value by @urugator