即使 useState 是常量,它如何改变?

Sba*_*yev 10 theory variables constants reactjs

我知道这const是无法改变的,即使它是 a ,声明 aconst [counter, setCouter] = useState();仍然能够改变 a吗?const counterconst

我遇到了变量阴影和不同块作用域内的变量。但是,const counter即使当您使用 重新分配它时它不在不同的范围内,这里也可以正常工作setCounter

Asi*_*sik 10

function MyComponent() {
    const [state, setState] = useState("");
    return <SomeJsx/>;
}
Run Code Online (Sandbox Code Playgroud)

当您调用 时setState,常数state不会改变。相反,MyComponent再次调用,useState现在返回更新的值。该值被分配给state常量,但这是不同函数调用的一部分,因此它实际上不是同一个常量。