Я использую response-router-dom для моего проектаact.js, и он добавляет / # / в URL маршрута. Могу ли я избавиться от этого? если да, то как? - PullRequest
1 голос
/ 21 июня 2019

Я использую Switch и Route отact-router-dom в моем проекте ReactionJS. И он автоматически добавляет # в конце URL-адреса маршрута. Например, если я перейду на localhost:3000, то URL будет отображаться как localhost:3000/#/ . Я хочу избавиться от этого #, так как я занимаюсь разработкой продукта, ориентированного на клиента, и не хочу, чтобы мои URL содержали # в нем. Есть ли способ удалить "#"? Помощь очень ценится. Заранее спасибо.

Edit:

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 Ответ

3 голосов
/ 21 июня 2019

Звучит так, как будто вы используете HashRouter компонент. Если вы замените его компонентом BrowserRouter, вы получите обычные URL.

Добавление кода из корневого app.js файла к вашему вопросу поможет нам продолжить отладку.

Edit:

Поскольку вы не указываете компонент маршрутизатора, по умолчанию react-router равен HashRouter. Вам нужно обернуть весь компонент приложения в BrowserRouter компонент, чтобы получить хорошие URL:

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

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