Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何使用React setState()将状态设置为常量的特定值?_Reactjs_React Hooks_Setstate - Fatal编程技术网

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

Reactjs 如何使用React setState()将状态设置为常量的特定值?,reactjs,react-hooks,setstate,Reactjs,React Hooks,Setstate,我相信我对React.js中的state是如何工作的有些误解。如果我将上述代码的setNumber(number+1)部分设置为“+1”,那么number将变成“201”,但如果我将其设置为“=newNumber”,则会出现“TypeError:Assignment to constant variable”错误。为什么会这样?因为newNumber不是使用“const”标记的常量变量,所以错误不应该是其他的吗 只需像这样使用setNumber const [number, setNumbe

我相信我对React.js中的state是如何工作的有些误解。如果我将上述代码的setNumber(number+1)部分设置为“+1”,那么number将变成“201”,但如果我将其设置为“=newNumber”,则会出现“TypeError:Assignment to constant variable”错误。为什么会这样?因为newNumber不是使用“const”标记的常量变量,所以错误不应该是其他的吗

只需像这样使用setNumber

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

  useEffect(() => {
    setNumber(number = newNumber);
  }, [])
或者最好只是在最初的表达

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

只需像这样使用setNumber

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

  useEffect(() => {
    setNumber(number = newNumber);
  }, [])
或者最好只是在最初的表达

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

setNumber
函数接受要将状态设置为的值。因此,如果您想将number设置为newNumber的值,您可以执行
setNumber(newNumber)

函数
setNumber
接受您想将状态设置为的值。因此,如果您想将number设置为newNumber的值,您可以执行
setNumber(newNumber)

只需将值放入
setNumber
函数中即可

const [number, setNumber] = useState(200)

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

const [number, setNumber] = useState(200)

useState
描述状态,它可以是对象、字符串、布尔值和数字。如果它是基本数据,即不是对象,则只需在更新时传递值,如下所示:

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

  useEffect(() => {
    setNumber(newNumber);
  }, [])
setStateVal(5); // here 5 will become the new state
如果您的状态是对象,则需要按如下方式传递更新的状态对象:

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

  useEffect(() => {
    setNumber(newNumber);
  }, [])
setStateVal(5); // here 5 will become the new state

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

useState
描述状态,它可以是对象、字符串、布尔值和数字。如果它是基本数据,即不是对象,则只需在更新时传递值,如下所示:

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

  useEffect(() => {
    setNumber(newNumber);
  }, [])
setStateVal(5); // here 5 will become the new state
如果您的状态是对象,则需要按如下方式传递更新的状态对象:

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

  useEffect(() => {
    setNumber(newNumber);
  }, [])
setStateVal(5); // here 5 will become the new state

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

在这种情况下,如果使用
const[number,setNumber]=useState(200)
,则更简单。另外,
setNumber
如果作为参数传递,则设置
number
的值。但是,我的初始值必须是其他值。在这种情况下,如果使用
const[number,setNumber]=useState(200)
,则更简单。另外,
setNumber
设置作为参数传递的
number
的值。但我的初始值必须是其他值。