问题描述
我正在使用 react-query 并且我想在用户保存触发查询失效的表单时将用户发送回上一页 - 除非返回会将用户发送到当前页面(用户的历史记录从该页面开始),因为这会导致无限循环。
这是我的代码:
const history = useHistory();
const mutatePost = useMutation(
(jsonData : InterfaceJsonData) => fetchPostWithUserAuth(
postUrl(id),fetchOptionsPost(jsonData,id),),{
onSuccess: () => {
history.goBack();
如何查看 history.goBack()
的去向?在用户从当前页面开始的极少数情况下,我不想不小心造成无限循环。
我使用 history.goBack()
是因为该组件在三个地方使用,我想重定向到相关页面(三个页面之一)。如果有什么方法可以搜索历史记录来检查前三个页面中的哪个页面被访问过,那就完美了。
解决方法
当用户到达您的网站时,您可以构建一个历史堆栈,您可以将用户浏览的每个页面推入一个数组。然后,如果用户按下后退按钮,您就知道发生了什么。如果数组为空,您知道,这是第一页。 或者另一种解决方案可能是 this。