In the basic example you can see props are passed down the compoent tree manually at every level. It’s very anoying.
A simple way to avoid this is to pass Redux store down at every level. It will simplify the code to some extent
function render(){
ReactDOM.render(
<AppComponent appName="React Demo Site" store={rootStore}/>,
document.getElementById('root'));
}
class AppComponent extends Component {
render() {
return (
<div className="App">
...
<CounterComponent store = {this.props.store}/>
...
</div>
);
}
}
class CounterComponent extends Component {
render(){
return (
<div>
<h2>Counter</h2>
<h3>{this.props.store.getState().counter.value}</h3>
<div>
<button onClick={ e => this.props.store.dispatch({type: 'counterChange', amount: 1}) }> + </button>
<button onClick={ e => this.props.store.dispatch({type: 'counterChange', amount: -1}) }> - </button>
</div>
</div>
);
}
}
The problem is, you still have to pass down the store object everywhere. Still anoying.