首页 > 解决方案 > 当我单击此按钮时,我试图访问以前的状态,但它似乎不起作用

问题描述

我正在尝试访问以前的状态,但它一直返回相同的数字,请帮忙

      let scrollUp = () => {


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

我在 setItems 和 setBeforeItems 中不断得到相同的数字

     setItems(productRowLength * 530 + mobile);
      setbeforeItems(prevnumberOfItems => prevnumberOfItems + 1000);

标签: javascriptreactjsreact-hooks

解决方案


setState提供一个回调函数,所以如果我们做这样的事情 - :

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.

但是如果我们做这样的事情-:

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

setState 的语法 -:

this.setState({ //properties and value },//callback function to be executed);

推荐阅读