import React, { useState, useReducer } from 'react';
import ReactDOM from 'react-dom';
let initialState = { count: 0 }
let actions = [
{ type: 'ADD', by: 2 },
{ type: 'MINUS', by: 4 },
{ type: 'ADD', by: 10 }
]
function reducer(state, action) {
if (action.type === "ADD") {
return { ...state, count: state.count + action.by }
} else if (action.type === "MINUS") {
return { ...state, count: state.count - action.by }
}
return state
}
console.log(actions.reduce(reducer, initialState))
const App = () => {
const [count, setCount] = useState(0)
const add = () => {
setCount(count + 1)
}
const subtract = () => {
if (count > 0) {
setCount(count - 1)
}
}
return (
<section>
<h2>Counter: The Most Novel Example I Could Come Up With</h2>
<div className="counter">
<button onClick={subtract}>-</button>
<div>{count}</div>
<button onClick={add}>+</button>
</div>
</section>
)
}
ReactDOM.render(<App />, document.getElementById('root'));