我如何使用 React setState() 将状态设置为特定的常量值?

How do I use React setState() to set the state to a specific value that is a constant?

  const [number, setNumber] = useState(0);
  let newNumber = 200;

  useEffect(() => {
    setNumber(number = newNumber);
  }, [])

我想我对状态在 React.js 中的工作方式有一些误解。如果我将上面代码的 setNumber(number + 1) 部分设置为“+ 1”,那么数字将变为“201”,但如果我将其设置为“= newNumber”,则会出现 'TypeError: Assignment to constant variable' 错误。为什么会这样?由于 newNumber 不是使用 'const' 标记的常量变量,错误不应该是其他原因吗?

一样使用setNumber
useEffect(() => {
    setNumber(newNumber);
  }, [])

或仅在初始表达式中更好

const [number, setNumber] = useState(200)

setNumber 函数接受您要将状态设置为的值。所以如果你想将 number 设置为 newNumber 的值,你会做 setNumber(newNumber)

只需将您的值放入 setNumber 函数即可。

const [number, setNumber] = useState(0);
  let newNumber = 200;

  useEffect(() => {
    setNumber(newNumber);
  }, [])

useState 描述状态,可以是对象、字符串、布尔值和数字。如果它是原始数据,即不是对象,您只需要按如下方式在更新时传递值:

setStateVal(5); // here 5 will become the new state

如果您的状态是一个对象,您需要按如下方式传递更新后的状态对象:

setStateVal({val: 5});  

在任何情况下都不要使用 = 运算符。