import Taro, {useState, useEffect} from '@tarojs/taro'
import {View} from '@tarojs/components'
export default function Kk() {
const [a,setA] = useState(1)
function change() {
setA(5)
console.log(a)//1
}
useEffect(()=>{
console.log(a)//5
},[a])
return (<View onClick={()=>change()}>setA</View>)
}
发现useState是异步的,还没有回调。发现这个useEffect可以监听到数据的改变。再去执行你的同步操作。就像这段代码一样,我setA的值为5,后面的console.log出来的值没有改变。这个时候就可以使用useEffect去监听数据a的改变。useEffect 后面的【】里要带你监听的数据。不然useEffect默认是无论改变哪个数据都会响应。
网友评论