javascript - 当我单击此按钮时,我试图访问以前的状态,但它似乎不起作用
问题描述
我正在尝试访问以前的状态,但它一直返回相同的数字,请帮忙
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);
解决方案
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);
推荐阅读
- python - Groupby 两列熊猫数据框和 shift().rolling()
- python - Python Ctypes NtQueryObject ObjectNameInformation 无异常中断
- python - 使用firebase admin SDK,Flask请求部署超时
- arrays - 使用二维数组作为转换表在 Verilog 中实现状态机
- xcode - 没有为目标提供 SOURCES:MyProject ?(OpenSceneGraph 基础)
- http - 如何加密离线企业网络中的http流量?
- reactjs - 如何在 React 导航中将用户从 URI 方案重定向到 App 的特定屏幕?
- typo3 - 如何使用typo3 viewhelper 文档?
- python - 如何在使用 pandas 将 df 转换为 to_json 时更改日期时间格式
- pandas - 熊猫使用 select_dtypes() 选择“对象”数据类型