Как использовать <Link>для изменения имени пути с помощью HashRouter - PullRequest
0 голосов
/ 24 февраля 2020

Я использую HashRouter. Скажем, я хочу перейти к http://localhost:8089/abc/#/home, я мог бы использовать window.history.pushState({}, '', 'http://localhost:8089/abc/#/home'), чтобы сделать это.

Мой вопрос заключается в том, как использовать <Link> api реагирующего маршрутизатора для такой же навигации. Я попытался <Link to="/#/home">, это не работает.

Вопрос 2: Я получил URL http://localhost:8089/abc/#/app1, и я хочу перейти к http://localhost:8089/aaa/#/home. Я попытался <Link to="/aaa/#/home">, но он перешел на URL http://localhost:8089/abc/#/aaa/#/home

Вот конфигурация маршрутизатора:

import React, {Component} from 'react';
import {BrowserRouter as Router, HashRouter, Route} from 'react-router-dom';
import App from '../containers/app';


class Routes extends Component {
    render() {
        return (
            <HashRouter basename="/">
                <Route path="/" component={App} />
            </HashRouter>
        )
    }
}
export default Routes;

Спасибо.

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Если вы хотите использовать Link, вы можете попробовать:

<Link to="/abc/#/home/" />

, если вы хотите использовать useHistory hook

import { useHistory } from "react-router-dom";

 function Home() {
     let history = useHistory();

     function handleClick() {
         history.push("/abc/#/home");
     }
 }

Редактировать: I знаете, как использовать Router и Switch вместо HashRouter

import { Router } from "react-router-dom";

const history = createBrowserHistory();

<Router history={history}>
    <Switch>
    <Route exact path="/" component={Home} /> // localhost:8089/
    <Route exact path="/abc/home" component={Home2} /> // localhost:8089/abc/home
  </Switch>
</Router>

, тогда вы можете использовать Link, как указано выше

0 голосов
/ 24 февраля 2020

эй, используйте вместо сначала сначала import Linking fro react-native;

, а затем внедрите следующий метод.

onPress={() =>  Linking.openURL("URL of page // path of page").catch(err =>
                  console.error("Couldn't load page", err),
                )  }

Надеюсь, что Гекпс, не стесняйтесь сомнений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...