【发布时间】:2022-02-13 20:40:19
【问题描述】:
我编写了一个简单的组件来重现我在一个更大的项目组件中遇到的问题。
假设我有一个数组A,我想在每次按钮单击时连续添加值 1,我想在按钮单击时更新状态数组B。
export default function UseStateTest(props) {
const arrayA = [];
const [arrayB, setArrayB] = useState([1, 2]);
function handleClick() {
arrayA.push(1);
setArrayB([3, 4]);
console.log(arrayA);
}
return <button onClick={handleClick}>Test</button>;
}
那里有setArrayB,代码行为不正确,当我单击按钮时:arrayA 将始终有 1 个元素 1(我认为,根据我遇到类似问题的其他代码的经验,该代码实际上是替换元素而不是推送)。
当我将setArrayB 注释掉时,代码行为正确,每次单击按钮时都会向数组中添加一个新元素“1”。
请有人帮助我了解导致这种行为的原因。
【问题讨论】:
标签: reactjs typescript react-hooks next.js jsx