-
Notifications
You must be signed in to change notification settings - Fork 0
/
Counter.js
54 lines (48 loc) · 1.29 KB
/
Counter.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*eslint-disable no-unused-vars */
import React, { Component, PropTypes } from 'react'
import {connect} from 'react-redux'
//({ value, onIncrement, onDecrement, onIncrementAsync }) =>
class Counter extends Component {
constructor(props) {
super(props);
this.state = {textValue:''};
}
render(){
return(
<div>
<input type="text" value={this.state.textValue} onChange={()=> this.setState({textValue: event.target.value})} />
{' '}
<button onClick={()=>this.props.dispatch({ type: 'APPLY_CHANGES',text:this.state.textValue})}>
Apply changes
</button>
{' '}
<button onClick={()=>this.props.dispatch({ type: 'DECREMENT_ASYNC'})}>
Decrement after 1 second
</button>
{' '}
<button onClick={()=>this.props.dispatch({ type: 'INCREMENT_ASYNC'})}>
Increment after 1 second
</button>
{' '}
<button onClick={()=>this.props.dispatch({ type: 'INCREMENT'})}>
Increment
</button>
{' '}
<button onClick={()=>this.props.dispatch({ type: 'DECREMENT'})}>
Decrement
</button>
<hr />
<div>
Clicked: {this.props.counter} times
</div>
</div>)
}
}
const mapStateToProps = (state /*, ownProps*/) => {
return {
counter: state.counter,
};
};
export default connect(
mapStateToProps
)(Counter);