0

I am trying to access the previous state but it keeps returning the same number please help

      let scrollUp = () => {


        setItems(prevnumberOfItems => prevnumberOfItems + 1000);
        alert(numberOfItems)
        window.scrollBy(0, -numberOfItems);
        alert(numberOfItems);
        setCounter(counter + 1);
        console.log(counter);
      };

I keep getting the same number back in setItems and setBeforeItems

     setItems(productRowLength * 530 + mobile);
      setbeforeItems(prevnumberOfItems => prevnumberOfItems + 1000);
skyboyer
  • 22,209
  • 7
  • 57
  • 64
TheChiefRocker
  • 73
  • 1
  • 1
  • 4

1 Answers1

0

setState offers a callback function so if we do something like this -:

this.setState({someValue: 10});
console.log(this.state.someValue); //can't expect it to be 10, can be previous value too because setState is async.

but if we do something like this -:

this.setState({someValue: 10}, () => console.log(this.state.someValue)); // definitely will be 10.

Syntax for setState -:

this.setState({ //properties and value },//callback function to be executed);
Abhisar Tripathi
  • 1,569
  • 10
  • 21