I tend to implement such a hook with useReducer after reading @leewarrickjr's awesome article,
useReducer
You will see that, with useReducer, you specify "how" to handle state changes. So you can write a merge function as a reducer and pass the initial state as shown below.
merge
const merge = (oldState, newState) => ({ ...oldState, ...newState }); const initialState = { name: "", email: "", phone: "" }; export default function App() { const [state, setState] = React.useReducer(merge, initialState); return ( <div className="App"> </div> ); }
The working code is below. (check the console output after submit).
Nice work!
Thanks, mate~! and for the post!
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
I tend to implement such a hook with
useReducer
after reading @leewarrickjr's awesome article,Bridging the Gap between React's useState, useReducer, and Redux
Lee Warrick γ» Sep 14 '19
You will see that, with
useReducer
, you specify "how" to handle state changes.So you can write a
merge
function as a reducer and pass the initial state as shown below.The working code is below. (check the console output after submit).
Nice work!
Thanks, mate~! and for the post!