// App.js
import React from "react";
import { connect } from "./state-manager-react";
const App = props => (
<div>
<button onClick={props.decrement}>-</button>
{props.count}
<button onClick={props.increment}>+</button>
</div>
);
const mapStateToProps = state => ({
count: state.count
});
const mapDispatchToProps = dispatch => ({
increment: () => {
dispatch({ type: "increment" });
},
decrement: () => {
dispatch({ type: "decrement" });
}
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(App);
// index.js
import React from "react";
import ReactDOM from "react-dom";
import App from './app';
const store = createStore((state = { count: 0 }, action = {}) => {
switch (action.type) {
case "increment":
return { count: state.count + 1 };
case "decrement":
return { count: state.count - 1 };
}
return state;
});
const rootElement = document.getElementById("root");
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
rootElement
);