reactjs - 在 useState 回调中分配时反应 useRef 当前值触发两次
问题描述
问题
单击按钮时,会跳过参考电流值的输出。请参阅下面的输出以供参考。但是,如果在toggle.current = current + 1
useState 回调之外,它会相应地工作。
代码
import "./styles.css";
import { useState, useRef } from "react";
export default function App() {
const [array, setArray] = useState(["a"]);
const toggle = useRef(1);
const handleChange = () => {
setArray((a) => {
let current = toggle.current;
console.log(current);
toggle.current = current + 1;
return [...a, "a"];
});
};
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
<button onClick={() => handleChange()}>hi</button>
</div>
);
}
期望的输出
1
2
3
4
5
6
实际输出
1
2
4
6
8
解决方案
推荐阅读
- javascript - 动画播放时禁用鼠标滚轮
- c# - 操作返回无效状态代码“未授权”将训练图像上传到自定义视觉
- php - RESTFul API POST 请求
- python - 在我的情况下如何正确卸载 Pip 和 Tensorflow
- error-handling - 为什么 Rust 的 usize 到 u128 转换被认为是失败的?
- python - 列表 - 结合起来给出一个新列表
- vba - Microsoft Access - 来自网格的百分比
- machine-learning - 在不平衡的数据上建立模型可以吗?
- python - 带有字典查找的布尔索引
- c# - 将选定范围从一个 xls 文件粘贴到另一个指定的工作表和单元格 - “范围类的复制方法失败”