Skip to content

MemoryHistory ​

Memory history stores the current location in memory. It is designed for use in stateful non-browser environments like tests and React Native.

The full documentation for MemoryHistory can be found here

Reference to source code

Usage ​

ts
import { createMemoryHistory } from "mobx-location-history";
import { reaction } from "mobx";

export const history = createMemoryHistory();

reaction(
  () => history.location.pathname,
  pathname => {
    console.log(pathname);
  }
)

history.push()

MobX modifications ​

location: Location observable.deep ​

Original location property wrapped in observable
See documentation here

action: Action observable.ref ​

Original action property wrapped in observable
See documentation here

isBlocked: boolean computed.struct ​

This property is needed to detect block statement provided by original history package

blockersCount: number observable.ref ​

This property is needed to detect block statement provided by original history package

destroy() ​

This method is needed for destroy all subscriptions and reactions created inside function createMemoryHistory

locationUrl computed.struct ​

This property represents stringified version of the location property

Example:

ts
/*
{ // location
  pathname: '/en-US/docs/Location.search',
  hash: '',
  search: '?q=123'
}
*/
history.locationUrl; // '/en-US/docs/Location.search?q=123'

lastBlockedTx: Transition | null observable.ref ​

Last blocked transition.
This property is helpful if you want to watch about blocked history transitions while history is blocked.
More information about blocking history you can find here

will be null if history is not blocked

Example:

ts
import { createBrowserHistory } from "mobx-location-history";

const history = createBrowserHistory();

...
const unblock = history.block(() => {
  //
})
...

history.push('/foo/bar');

history.lastBlockedTx; // { // Transition

unblock();

history.lastBlockedTx; // null