我如何使用 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});
在任何情况下都不要使用 =
运算符。
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' 标记的常量变量,错误不应该是其他原因吗?
像
一样使用setNumberuseEffect(() => {
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});
在任何情况下都不要使用 =
运算符。