TSX中使用React函数组件时,调用useState的坑
1.在函数组件中想要使用state,需要引入useState方法,但有时在点击方法中调用setXXX时会出现延迟更新,解决方法为先setXXX(’’/[]),即置空,再setXXX(‘自己所需的值’)即可。
2.在useEffect中setXXX后,在外面输出会有值,在useEffect内部输出为空
const [data, setData] = useState([]);
var arr = [];
useEffect(() => {
axios.get('http://xxx').then(res=>{
//console.log(res.data);
var data = JSON.parse(res.data);
for(var i=0;i<data.length;i++){
var obj = {};
...
arr.push(obj);
}
setData(arr);
}).catch(error=>{console.log(error)});
}, []);
console.log(data);