import React, {useState} from 'react';
function App(){
const [counter, setCounter] = useState(0);
const onIncrement = () => {
setCounter(++counter)
};
return(
<div>
<h1>{counter}</h1>
<button onClick={onIncrement}>Increment</button>
</div>
)
}
export default App;
在上面的代码片段中,onClick of Increment button (++counter) 抛出Uncaught TypeError: "counter" is read-only
然而,如果我将其更改为 counter+1,则效果很好。我知道 counter+1 和 ++counter 在输出方面是相同的,但从技术上讲,它们在内部是不同的。它们有何不同?我看到一个博客,其中一个 C 程序员解释了 ++ 运算符使用寄存器并引用与其他数学运算不同的相同地址位置。为什么这种增量尝试在 React 中被捕获为错误?