Skip to content

Instantly share code, notes, and snippets.

@ashwinkumar2438
Created September 10, 2020 16:16
Show Gist options
  • Save ashwinkumar2438/d85be34cb1dba4b765a4b032b9b773c3 to your computer and use it in GitHub Desktop.
Save ashwinkumar2438/d85be34cb1dba4b765a4b032b9b773c3 to your computer and use it in GitHub Desktop.
let createState=(initialvalue)=>{
let state={...initialvalue};
let getstate=()=>({...state});
let setstate=(input)=>{
if(input.constructor===Object)state={...state,...input};
if(input.constructor===Function)state={...input({...state})};
};
return [getstate,setstate];
}
var [getState,updateState]=createState({counter:0});
getState(); //{counter: 0}
updateState((oldState)=>{oldState.counter++;return oldState;});
getState(); //{counter: 1}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment