Fetching contributors…
Cannot retrieve contributors at this time
104 lines (67 sloc) 1.45 KB


Gives you a map as a state.


import {Map} from 'libreact/lib/Map';

<Map init={{c: 'd'}}>{({get, set, remove}) =>
    <div>a: {get('a')}</div>
    <pre style={{fontFamily: 'monospace'}}>{JSON.stringify(get())}</pre>
    <button onClick={() => set('a', 'b')}>set('a', 'b')</button>
    <button onClick={() => remove('a')}>remove('a')</button>



interface IMapProps {
  init?: {[key: string]: any};

, where

  • init - optional, map of initial values.

withMap() HOC

HOC that merges map prop into enhanced component's props.

import {withMap} from 'libreact/lib/Map';

const MyCompWithMap = withMap(MyComp);

You can overwrite the injected prop name

const MyCompWithMap = withMap(MyComp, 'foobar');

Or simply merge the whole object into your props

const MyCompWithMap = withMap(MyComp, '');

Set default value

const MyCompWithMap = withMap(MyComp, '', {foo: 'bar'});

@withMap decorator

React stateful component decorator that adds map prop.

import {withMap} from 'libreact/lib/Map';

class MyComp extends Component {


Specify different prop name

class MyComp extends Component {


or merge the the whole object into props

class MyComp extends Component {


set starting value

@withMap('', {foo: 'bar'})
class MyComp extends Component {