react-provide-state Demo

    
import React from 'react';
import ReactDom from 'react-dom';

import provideState from './src/provideState';

const ComponentA = ({value, setValue}) => {
  return (<div>
    <span>You are entering: </span>
    <input value={value} onChange={(e) => setValue(e.target.value)} />
  </div>);
};

const ComponentB = ({text}) => {
  return (<div>
    <span>You have entered: </span>
    <span>{text}</span>
  </div>);
};

const stateConfig = {
  namespace: 'optional namespace',
  name: 'value',
  initValue: 'please type...',
};

export const ComponentAWithState = provideState(stateConfig)(ComponentA);
export const ComponentBWithState = provideState({...stateConfig, alias: 'text'})(ComponentB);

ReactDom.render(
  <div>
    <ComponentAWithState />
    <ComponentBWithState />
  </div>,
  document.querySelector('#root')
);