import React from 'react' import { bindActionCreators } from 'redux' import { startClock, addCount, serverRenderClock } from '../store' import Page from '../components/Page' import { connect } from 'react-redux' class Counter extends React.Component { static getInitialProps ({ store, isServer }) { store.dispatch(serverRenderClock(isServer)) store.dispatch(addCount()) return { isServer } } componentDidMount () { this.timer = this.props.startClock() } componentWillUnmount () { clearInterval(this.timer) } render () { return ( ) } } const mapDispatchToProps = (dispatch) => { return { addCount: bindActionCreators(addCount, dispatch), startClock: bindActionCreators(startClock, dispatch) } } export default connect(null, mapDispatchToProps)(Counter)