suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Ist es möglich, eine Standardroute im React-Router zu definieren?

<p>Angenommen, die Basis-URL meiner App lautet <em>example.com/app</em></p> <p>Ist es möglich, grundlegende Routen in React-Router einzurichten, anstatt alle Routen als </p> zu schreiben? <pre class="brush:php;toolbar:false;">/app/a /app/b /app/c</pre> <p>Ich kann sie als </p> angeben. <pre class="brush:php;toolbar:false;">a B c</pre> <p>Ich habe das folgende Beispiel aus der Dokumentation ausprobiert, aber es funktioniert nicht (auf der Seite wird nichts angezeigt). Vielleicht liegt es daran, dass ich „react-router@3.0.0-alpha.1“ verwende oder etwas falsch mache. </p> <pre class="brush:php;toolbar:false;">import { useRouterHistory } from 'react-router' importiere { createHistory } aus 'history' const History = useRouterHistory(createHistory)({ Basisname: '/app' }) const Root = ({store}) => <Provider store={store}> <Router-Verlauf={history}> <Route path='/' Component={App}> ... </Route> </Router> </Anbieter> )</pre> <p><br /></p>
P粉128563140P粉128563140444 Tage vor478

Antworte allen(2)Ich werde antworten

  • P粉087074897

    P粉0870748972023-08-28 16:11:51

    如果您想使用,它可以让您访问历史对象,允许您通过history.push('/my-path')更改页面 code>直接来自js的方法。您将面临这样的问题:BrowserRouter 没有可用的 history 属性,并且 Router 没有可用的 basename

    解决办法如下:

    const App: React.FC = () => {
      // do not put a slash at the end of the basename value.
      const history = createBrowserHistory({ basename: '/your-base-name' });
    
      return <Router history={history}>
               ...
             </Router>;
    }
    

    https://reacttraining.com/react-router/web/ api/BrowserRouter/basename-string

    Antwort
    0
  • P粉647449444

    P粉6474494442023-08-28 00:10:44

    使用最新的react router (v4),你可以轻松做到这一点

    <BrowserRouter basename="/calendar">
      <Link to="/today"/> // renders <a href="/calendar/today">
    </BrowserRouter>

    Antwort
    0
  • StornierenAntwort