mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
3db3f4b42a
It's better that Counter behave not only `increment (add)` but also `decrement` or `reset`. * Add decrement, reset handlers and rename add handler in `components/counter.js` * Add increment, decrement, reset actions to `store.js` * Rename page component class name: Counter => Index in `pages/index.js` * Remove needless dispatch count event on getInitialProps in `pages/index.js` * Format JSX to be readable in `pages/_app.js` * Remove needless line from `components/examples.js` * Remove needless spaces in `lib/with-redux-store.js`
40 lines
879 B
JavaScript
40 lines
879 B
JavaScript
import React, {Component} from 'react'
|
|
import { connect } from 'react-redux'
|
|
import { incrementCount, decrementCount, resetCount } from '../store'
|
|
|
|
class Counter extends Component {
|
|
increment = () => {
|
|
const {dispatch} = this.props
|
|
dispatch(incrementCount())
|
|
}
|
|
|
|
decrement = () => {
|
|
const {dispatch} = this.props
|
|
dispatch(decrementCount())
|
|
}
|
|
|
|
reset = () => {
|
|
const {dispatch} = this.props
|
|
dispatch(resetCount())
|
|
}
|
|
|
|
render () {
|
|
const { count } = this.props
|
|
return (
|
|
<div>
|
|
<h1>Count: <span>{count}</span></h1>
|
|
<button onClick={this.increment}>+1</button>
|
|
<button onClick={this.decrement}>-1</button>
|
|
<button onClick={this.reset}>Reset</button>
|
|
</div>
|
|
)
|
|
}
|
|
}
|
|
|
|
function mapStateToProps (state) {
|
|
const {count} = state
|
|
return {count}
|
|
}
|
|
|
|
export default connect(mapStateToProps)(Counter)
|