Skip to content

Instantly share code, notes, and snippets.

@pjazdzewski1990
Created May 5, 2016 09:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pjazdzewski1990/3cb978216b471eee83dbc1e5788fa63c to your computer and use it in GitHub Desktop.
Save pjazdzewski1990/3cb978216b471eee83dbc1e5788fa63c to your computer and use it in GitHub Desktop.
import React from 'react';
import { render } from 'react-dom';
import { createStore } from 'redux';
import { connect, Provider } from 'react-redux';
const reducer = (state = {counter: 0}, action) => {
switch (action.type) {
case 'INCREMENT':
return {...state, counter: state.counter+1};
case 'DECREMENT':
return {...state, counter: state.counter-1};
default:
return state;
}
};
const store = createStore(reducer, {counter: 0},window.devToolsExtension ? window.devToolsExtension() : undefined);
let Counter = ({counter, onIncrement, onDecrement}) =>
(<div>
<div>{counter}</div>
<button onClick={onDecrement}>-</button>
<button onClick={onIncrement}>+</button>
</div>);
const mapStateToProps = (state) => {
return {counter: state.counter};
}
const mapDispatchToProps = (dispatch) => {
return {
onIncrement: () => dispatch({type: 'INCREMENT'}),
onDecrement: () => dispatch({type: 'DECREMENT'})
}
}
Counter = connect(mapStateToProps, mapDispatchToProps)(Counter);
render(
<Provider store={store}>
<Counter />
</Provider>
, document.getElementById('root'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment