切换主题
一、useState
1、使用钩子函数useState()来创建state
js
import {useState} from "react"
2、它需要一个值作为参数,这个值就是state的初始值
js
const result=useState(1);
3、useState会返回一个数组,result就是数组,数组包含俩个元素
js
//第一个元素是初始值,只用来显示数据,直接修改触发不了组件的重新渲染
let counter=result[0];
//第二个元素,是一个函数,用来接受一个参数来修改state的值
let setCounter=result[1];
4、最终写法
js
const [state,setState]=useState(initialState);
注意事项
setState修改state的值的过程是异步过程,所以存在一个情况:假如异步的时间是一秒钟,如果在一秒里面给state设置俩次的值,并且每次的值都要根据上一次的值来,比如计数器,需要前一个值进行运算,就会出现一秒内进行俩次运算,结果可能会出错
js
//比如一秒内进行俩次运算
const [counter,setCounter]=useState(1);
setCounter(counter+1);
setCounter(counter+1);
//结果是2
所以这种需要利用上一次产生的值进行下一次运算的state,需要用回调函数来进行运算
js
setCounter(preState=>prestate+1);