Как я могу сделать маршрутизацию в React, используя react-router-dom, используя hashbang? Что-то вроде
меня устраивает.
В маршрутизации Angular я использовал { useHash: true }
в RouterModule
из angular/router
для достижения этого.
В маршрутизации Vue я использовал history: createWebHashHistory()
в createRouter
методе vue-router
для достижения этой цели.
Есть ли способ добиться этого здесь?
Если это не так, пожалуйста, предложите мне другие надежные библиотеки маршрутизации для React.
P.S. Если вам интересно, зачем мне это нужно, ответ — IIS. И я не хочу проходить слишком сложную процедуру, чтобы заставить его работать в IIS.
Используйте <HashRouter> вместо одного из других маршрутизаторов.
Вам нужно использовать HashRouter
: https://reactrouter.com/web/api/HashRouter
Например, вы можете сделать следующее:
import { HashRouter as Router, Route, Switch } from 'react-router-dom';
const App = () => {
return (
<Router>
<Switch>
<Route exact path = "/foo">
<Component1/>
</Route>
<Route exact path = "/bar">
<Component2/>
</Route>
</Switch>
</Router>);
}
@Dalibor Вам нужно использовать withRouter
. Это поможет: stackoverflow.com/a/56622289/6306974
Извините, извините... Все работает нормально. Я использовал "this.props.history.push" вместо "props.history.push", поскольку использовал его до того, как попробовал HashRouter. Теперь все работает нормально, с роутером проблем не было; Я понимаю, что мне нужно использовать withRouter в компонентах на маршрутизируемой странице, но это была другая проблема. Спасибо!
Спасибо. Однако как мне использовать props.match, props.location, props.history... на перенаправляемых страницах? Теперь он выдает ошибку, когда я попробовал это «Невозможно прочитать URL-адрес свойства неопределенного», пробовал ли я его на сервере разработки или в IIS