我在我的react.js项目中使用react-router-dom,它在路由URL中添加了/#/。我可以摆脱它吗?如果是,如何?

时间:2019-06-21 06:14:25

标签: javascript reactjs react-router react-router-dom

我在我的reactJS项目中使用来自react-router-dom的Switch and Route。并自动在路由URL的末尾添加#。 例如,如果我导航到localhost:3000,它将显示为localhost:3000/#/ . 在开发面向客户的产品时,我想摆脱此#的问题,并且不希望我的URL中包含#。 有什么方法可以删除“ #”吗?非常感谢帮助。 预先感谢。

编辑:

import { Switch, Route, withRouter} from 'react-router-dom';
@inject('userStore', 'commonStore', 'authStore')
@withRouter
@observer
export default class App extends React.Component {
render(){
return(
 <Switch >
<Route path="/signin" component={Login} />
</Switch >
)


}
}

1 个答案:

答案 0 :(得分:3)

听起来您正在使用HashRouter组件。如果将其替换为BrowserRouter组件,您将获得普通的URL。

app.js根文件中的代码添加到您的问题中,将有助于我们进一步调试。

编辑:

由于您未指定路由器组件,因此它react-router默认为HashRouter。您需要将整个应用程序组件包装在BrowserRouter组件中,以获取良好的网址:

import { Switch, Route, BrowserRouter } from 'react-router-dom';

render(){
  return (
    <BrowserRouter>
      <Switch >
        <Route path="/signin" component={Login} />
      </Switch>
    </BrowserRouter>
  );
}