猿问

react hooks 的 useState 如何获取最新的 state?求解答!

直接上代码吧,类似于之前class组件this.setState的第二个callback参数
importReact,{useState,useEffect}from'react';
importfetchDatafrom'services';
functionuseList(){
const[params,setParams]=useState({});
const[data,setData]=useState({});
constgetData=()=>{
fetchData(params).then(res=>{
setData(res);
});
};
useEffect(()=>{
getData();
},[]);
return{
params,
setParams,
data,
setData,
getData,
};
}
functionFoo(){
const{setParams,getData}=useList();
consthandleClick=()=>{
setParams({mockData:2333333});
//如何让getData里params是最新的???
getData();
};
return(
clickme
);
}
慕姐8265434
浏览 706回答 2
2回答

三国纷争

constgetData=useCallback(()=>{fetchData(params).then(res=>{setData(res);});},[params,setData]);

蝴蝶不菲

const{setParams,data,getData}=useList();当data更新时Foo会拿到最新的data的不需要额外做处理
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答