Axios在使用async和wait时似乎不会更新状态



当我使用带有async和wait的Axios时,如何立即更新状态数据?它似乎没有立即更新状态数据。事先非常感谢,非常感谢。这是代码示例:

const[dbdata,setDBData] = useState([])  

useEffect(async() => {
const response = await Axios.get('http://localhost:5000/api/posts/allpost', {withCredentials:true})
setDBData(response.data)

}, [])
const GetPost = async(id) =>{
const response = await Axios.put('http://localhost:5000/api/posts/getPost',{postId:id}, {withCredentials:true})
const getData = dbdata.map(item => {
if(item._id==response._id){
return response
}
else{
return item
}

})
console.log(getData)
setDBData(getData)
}

useEffect(async((=>…(不支持,但您可以在效果内部调用异步函数。

尝试:

useEffect(() => {

const GetPost = async(id) =>{
const response = await Axios.put('http://localhost:5000/api/posts/getPost',{postId:id}, {withCredentials:true});
const getData = dbdata.map(item => {
if(item._id==response._id){
return response;
}
else{
return item;
}

})
console.log(getData);
setDBData(getData);
}
GetPost();
}, [])

编辑:

或:

useEffect(() => {
GetPost();
}, []);
const GetPost = async(id) =>{
const response = await Axios.put('http://localhost:5000/api/posts/getPost',{postId:id}, {withCredentials:true});
const getData = dbdata.map(item => {
if(item._id==response._id){
return response;
}
else{
return item;
}

})
console.log(getData);
setDBData(getData);
}


最新更新