当用户在editProfile组件中更新其个人资料时,服务器中的数据将更新,并且该用户将重定向到userProfile组件。现在,在userProfile中,可以从服务器获取用户数据。在这里,我正在获取旧数据。但是,如果刷新页面,则会得到更新的数据。
// api
router.post('/:uid/edit', (req, res) => {
const updatedUser = {
name : req.body.name,
avatar : req.body.avatar,
bio : req.body.bio
};
console.log('updateduser',updatedUser);
User.findOneAndUpdate({uid: req.params.uid}, {$set: updatedUser},
{"new":true})
.then(user => {
res.json(user);
console.log(user);
})
.catch(err => {
console.log('er',err);
});
});
//动作
export const usersFetchData = (url) => {
return (dispatch) => {
dispatch(userIsLoading(true));
axios
.get(url)
.then(res => {
if(!res){
throw Error(res.statusText)
}
dispatch(userIsLoading(false));
console.log(res.data); //getting old data
return res.data;
})
.then(users => {
console.log('users',users);
dispatch(usersFetchDataSuccess(users))
})
.catch(() => dispatch(userHasErrored(true)));
}
}
答案 0 :(得分:1)
最可能的原因是axios
缓存。查看axios设置中的内容以及
'Cache-Control': 'no-cache'
已设置。通常通过:
var config = {headers: {'Content-Type': 'application/json','Cache-Control' : 'no-cache'}};
axios.get('/get', config) // <-- config
如果这不起作用,您可以随时向请求添加时间戳,以确保始终发出请求。