Componentwillunmount With React Useeffect Hook
How can the useEffect hook (or any other hook for that matter) be used to replicate componentWillUnmount? In a traditional class component I would do something like this: class Eff
Solution 1:
You can make use of useRef and store the props to be used within a closure such as render useEffect return callback method
functionHome(props) {
  const val = React.useRef();
  React.useEffect(
    () => {
      val.current = props;
    },
    [props]
  );
  React.useEffect(() => {
    return() => {
      console.log(props, val.current);
    };
  }, []);
  return<div>Home</div>;
}
However a better way is to pass on the second argument to useEffect so that the cleanup and initialisation happens on any change of desired props
React.useEffect(() => {
  return() => {
    console.log(props.current);
  };
}, [props.current]);
Solution 2:
useLayoutEffect() is your answer in 2021
useLayoutEffect(() => {
    return() => {
        // Your code here.
    }
}, [])
This is equivalent to ComponentWillUnmount.
99% of the time you want to use useEffect, but if you want to perform any actions before unmounting the DOM then you can use the code I provided.
Solution 3:
useEffect(() => {
  if (elements) {
    const cardNumberElement =
      elements.getElement('cardNumber') ||  // check if we already created an element
      elements.create('cardNumber', defaultInputStyles); // create if we did not
            
    cardNumberElement.mount('#numberInput');
  }
}, [elements]);
Post a Comment for "Componentwillunmount With React Useeffect Hook"