Using Amorphous in a Library

If you are a library author using Amorphous, it is important to make sure your library's appState does not conflict with the client's appState.

Amorphous uses React context to control which components have access to which appStates. To make a new context for your library, use:

import { createAppStateContext } from 'amorphous';

const MyAppStateContext = createAppStateContext();

Then, to specify that your components use MyAppStateContext instead of the default appState context, set the appStateContext property on those components:

class MyApp extends RootAppComponent {
  appStateContext = MyAppStateContext;

  // ...
}

class MyComponent extends AppComponent {
  appStateContext = MyAppStateContext;

  // ...
}

To make this less reduntant, I suggest making your own RootAppComponent and AppComponent classes for your library with extension:

Making Amorphous classes for your library

import { AppComponent, RootAppComponent, createAppStateContext } from 'amorphous';

const MyAppStateContext = createAppStateContext();

export class MyAppComponent extends AppComponent {
  appStateContext = MyAppStateContext;
}
export class MyRootAppComponent extends RootAppComponent {
  appStateContext = MyAppStateContext;
}

Then everywhere you would use AppComponent or RootAppComponent, you can instead use MyAppComponent or MyRootAppComponent from that file's exports.

results matching ""

    No results matching ""