17. render: function() {
var filter = this.state.filter.toLowerCase();
var items = this.state.items.filter(item =>
_.includes(item.label.toLowerCase(), filter)
);
var active = items.filter(item => item.active);
var inactive = items.filter(item => !item.active);
return (
<div>
<Searchbar onChange={this.handleSearch}/>
<h3>Active</h3>
<ItemList items={active} onClick={this.handleClick}/>
<h3>Inactive</h3>
<ItemList items={inactive} onClick={this.handleClick}/>
</div>
);
}
18. handleClick: function(item) {
// this is not recommended, better to use immutable!
item.active = !item.active;
this.forceUpdate();
},
handleSearch: function(text) {
this.setState({filter: text});
},
20. REACT SUMMARY
Components all the way down
No assumptions about your stack
Plain JavaScript. No DSLs, just syntax sugar.
ES6, Browserify/Webpack, ClojureScript etc.