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://npmcdn.com/mobx@2.7.0/lib/mobx.umd.js"></script>
<script src="https://npmcdn.com/mobx-react@4.0.4/index.js"></script>
  <div id="app" />
</body>
 
button, li { cursor: pointer }
.selected {
  color: red;
}
 
const { observable, asMap, computed, action } = mobx;
const { observer } = mobxReact;
class BookStore {
  @observable booksSortedIdArray = ["88cd7621", "88cd7624", "88cd7623", "88cd7622"];
  @observable booksByIdMap = asMap({
    "88cd7621": {
      "id": "88cd7621",
      "title": "The Secret"
    },
    "88cd7622": {
      "id": "88cd7622",
      "title": "The Alchemist"
    },
    "88cd7623": {
      "id": "88cd7623",
      "title": "Javascript"
    },
    "88cd7624": {
      "id": "88cd7624",
      "title": "PHP"
    }
  });
   
  @computed get byBookId() {
    return this.booksByIdMap.values().filter(b => this.booksSortedIdArray.includes(b.id));
  }
}
const store = new BookStore();
const App = observer(() => {
  return <div> 
    {store.byBookId.map(b => <div key={b.id}>{b.title}</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