Reactjs react router dom history.goBack()不适用于Firefox和Safari

Reactjs react router dom history.goBack()不适用于Firefox和Safari,reactjs,react-router,react-router-dom,Reactjs,React Router,React Router Dom,我有这样一个组件(简化版) import React,{Fragment,useffect,useState}来自'React'; 从“react router dom”导入{Link,useHistory,useParams}; 常量MyComponent=()=>{ 让历史=使用历史(); 康斯特把手支架=()=>{ console.log('返回…'); history.go(-1);//或history.goBack(); }; 返回( 返回 ); } 它在chrome中的工作与预期一

我有这样一个组件(简化版)

import React,{Fragment,useffect,useState}来自'React';
从“react router dom”导入{Link,useHistory,useParams};
常量MyComponent=()=>{
让历史=使用历史();
康斯特把手支架=()=>{
console.log('返回…');
history.go(-1);//或history.goBack();
};
返回(
返回
);
}
它在chrome中的工作与预期一样。在Firefox和safari中根本不起作用。控制台显示handleGoBack函数按预期调用,但history.goBack仅在chrome上调用。
有什么想法吗?

问题不在于您提供的代码,而在于其他方面。我是根据您的代码片段创建的,
history.go(-1)
在最新版本的Firefox和Safari中运行

我刚刚遇到了完全相同的问题。因此,在代码中,您放置了如下链接:

<Link to="#" onClick={handleGoBack}>&lt; Back</Link>
返回
我在firefox中看到了这一点,它被呈现为一个锚标记,其url作为当前url。
因此,我只是用一个按钮替换了
链接
,并像往常一样处理onclick事件,它就像一个符咒一样工作。

这就是我在使用React路由器时的工作原理: goBack()可以工作,但我必须检查“/”并在达到该值时停止。历史记录计数业务不起作用,因此我必须搜索“/”路径,以知道何时隐藏/禁用“Yes,history.go(-1)”对我有效,谢谢。如果有人在旧浏览器上寻找解决方案,zsajjad将在此处发布更长的解决方法
<Link to="#" onClick={handleGoBack}>&lt; Back</Link>
import React  from "react";
import { withRouter } from "react-router";
import { NavBar, Icon } from "antd-mobile";
import MainSearchContainer from "../components/MainSearchContainer";
import { render } from "@testing-library/react";

function PageHeader({location, history, db}) {
   const appTitle = "My App";

   return (
      <React.Fragment>
         <NavBar
            icon={location.pathname !== "/" ? <Icon type="left" /> : ""}
            onLeftClick={() => { history.goBack(); render(); } }
            mode="dark"
            rightContent={[<Icon key="1" type="ellipsis" />]}
         >
            {appTitle}
         </NavBar>
         <MainSearchContainer db={db} history={history} />
      </React.Fragment>
   );
}

export default withRouter(PageHeader);