Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE HTML>
<body>
<script src="https://fb.me/react-with-addons-0.14.7.min.js"></script>
<script src="https://fb.me/react-dom-0.14.7.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mobx/3.2.2/mobx.umd.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mobx-react/4.2.2/index.js"></script>
  <div id="app" />
</body>
 
button, li { cursor: pointer }
.selected {
  color: red;
}
 
const {observable, autorun, action} = mobx;
const {observer} = mobxReact;
const {Component} = React;
class BaseStore {
  model = observable.map({});
  @action updateStore(propertyName, newValue) {
    this.model.set(propertyName, newValue);
  }
}
const baseStore = new BaseStore();
@observer
class App extends Component {
  componentDidMount() {
    this.interval = setInterval(() => {
      const key = Math.random().toString(36).substring(7);
      const val = Math.random().toString(36).substring(7);
      baseStore.updateStore(key, val);
    }, 1000);
  }
  
  componentWillUnmount() {
    clearInterval(this.interval);
  }
  
  render() {
    return <div> 
      { baseStore.model.entries().map(e => <div> {`${e[0]} ${e[1]}` } </div>) } 
    </div>;
  }
}
ReactDOM.render(
  <App />,
  document.getElementById('app')
);
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers