Answers for "how to compare previous state in useeffect"

1

useffect compare previous value to current

//Custom Hook
function usePrevious(value) {
  const ref = useRef();
  useEffect(() => {
    ref.current = value;
  });
  return ref.current;
}

// Use it in useEffect
const Component = (props) => {
    const {receiveAmount, sendAmount } = props
    const prevAmount = usePrevious(receiveAmount);
    useEffect(() => {
        if(prevAmount.receiveAmount !== receiveAmount) {

         // process here
        }
    }, [receiveAmount])
}
Posted by: Guest on June-14-2021
1

when to use previous state in useState

import React, { useState } from "react";
import ReactDOM from "react-dom";

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <h1>{count}</h1>
      <button onClick={() => setTimeout(() => setCount(count + 1), 2000)}>
        Delayed Counter (basic)
      </button>
      <button onClick={() => setTimeout(() => setCount(x => x + 1), 2000)}>
        Delayed Counter (functional)
      </button>
      <button onClick={() => setCount(count + 1)}>Immediate Counter</button>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<Counter />, rootElement);
Posted by: Guest on October-22-2020
0

useRef for diffing

function usePrevious(value) {
  const ref = useRef();
  useEffect(() => {
    ref.current = value;
  });
  return ref.current;
}
Posted by: Guest on November-11-2020

Code answers related to "how to compare previous state in useeffect"

Code answers related to "Javascript"

Browse Popular Code Answers by Language