Mobx Versions Save

Simple, scalable state management.

[email protected]

1 year ago

Patch Changes

[email protected]

1 year ago

Patch Changes

[email protected]

1 year ago

Patch Changes

  • bbcb12dc #3434 Thanks @urugator! - Support re-mounting of class components. Fixes #3395: observer not working with React@18 <StrictMode>.

[email protected]

2 years ago

Minor Changes

[email protected]

2 years ago

Minor Changes

[email protected]

2 years ago

Minor Changes

  • 4c5e75cd #3382 Thanks @iChenLei! - replace the deprecated react type definition with recommended type definition

  • bd4b70d8 #3387 Thanks @mweststrate! - Added experimental / poor man's support for React 18. Fixes #3363, #2526. Supersedes #3005

    • Updated tests, test / build infra, peerDependencies to React 18
    • [breaking icmw upgrading to React 18] Already deprecated hooks like useMutableSource will trigger warnings in React 18, which is correct and those shouldn't be used anymore.
    • [breaking icmw upgrading to React 18] When using React 18, it is important that act is used in unit tests around every programmatic mutation. Without it, changes won't propagate!
    • The React 18 support is poor man's support; that is, we don't do anything yet to play nicely with Suspense features. Although e.g. startTransition basically works, MobX as is doesn't respect the Suspense model and will always reflect the latest state that is being rendered with, so tearing might occur. I think this is in theoretically addressable by using useSyncExternalStore and capturing the current values together with the dependency tree of every component instance. However that isn't included in this pull request 1) it would be a breaking change, whereas the current change is still compatible with React 16 and 17. 2) I want to collect use cases where the tearing leads to problems first to build a better problem understanding. If you run into the problem, please submit an issue describing your scenario, and a PR with a unit tests demonstrating the problem in simplified form. For further discussion see #2526, #3005

Patch Changes

[email protected]

2 years ago

Minor Changes

  • 4c5e75cd #3382 Thanks @iChenLei! - replace the deprecated react type definition with recommended type definition

  • bd4b70d8 #3387 Thanks @mweststrate! - Added experimental / poor man's support for React 18. Fixes #3363, #2526. Supersedes #3005

    • Updated tests, test / build infra, peerDependencies to React 18
    • [breaking icmw upgrading to React 18] Already deprecated hooks like useMutableSource will trigger warnings in React 18, which is correct and those shouldn't be used anymore.
    • [breaking icmw upgrading to React 18] When using React 18, it is important that act is used in unit tests around every programmatic mutation. Without it, changes won't propagate!
    • The React 18 support is poor man's support; that is, we don't do anything yet to play nicely with Suspense features. Although e.g. startTransition basically works, MobX as is doesn't respect the Suspense model and will always reflect the latest state that is being rendered with, so tearing might occur. I think this is in theoretically addressable by using useSyncExternalStore and capturing the current values together with the dependency tree of every component instance. However that isn't included in this pull request 1) it would be a breaking change, whereas the current change is still compatible with React 16 and 17. 2) I want to collect use cases where the tearing leads to problems first to build a better problem understanding. If you run into the problem, please submit an issue describing your scenario, and a PR with a unit tests demonstrating the problem in simplified form. For further discussion see #2526, #3005

[email protected]

2 years ago

Minor Changes

[email protected]

2 years ago

Patch Changes

  • 2caf7e1a #3316 Thanks @urugator! - requiresObservable always takes precedence over global reactionRequiresObservable

[email protected]

2 years ago

Patch Changes