【发布时间】:2022-01-12 02:11:09
【问题描述】:
我正在呈现一个用户可以单击以注销的图标。这个图标是在用户登录的情况下呈现的。我不想在用户未登录时呈现它。我在 onClick 事件中有这个函数,每当函数运行时,用户就会在后端,但用户的数据仍会在之后立即获取。怎么会这样?我假设我的异步等待函数写错了,或者它太快地使查询无效?我想使用户数据查询无效,以便它重新获取并看到用户未登录,因此不再呈现注销图标。
const logoutUser = async () => {
setShowModal(false)
try{
await axios.delete('/logout')
console.log("LoggedOut:")
history.push("/")
queryClient.invalidateQueries('userData')
}catch(error) {
console.log(error.message)
}
}
Picture of my backend handling the logout and getting the user data right after
【问题讨论】:
-
我应该补充一点,如果我刷新页面,它会重新获取并看到用户已注销并且不再呈现图标。
-
你不能把
history.push("/")移动到失效行之后吗? -
@millhouse 不会改变任何东西,用户可以在主页上注销。我把它放在那里以防万一它们在用户专用页面上。
标签: javascript reactjs async-await react-query