Как отреагировать маршрут маршрута один / два / три? - PullRequest
1 голос
/ 21 июня 2019

Я хотел бы иметь что-то вроде этого

        <Route
          path="/one/two/three"
          render={() => (
            <Component/>
          )}
          exact
        />

Но, похоже, это не работает локально, когда я оборачиваю все это в Router.Я вижу содержимое Component только тогда, когда оно просто /one, но я хотел бы иметь /one/two/three в качестве пути (будучи моим пользователем root-доступа на этом пути).

Ответы [ 2 ]

1 голос
/ 21 июня 2019

В react-router-v4 вы можете иметь только маршруты ниже,

<Route path="/one" render={() => (<Component/>)} exact /> //Direct route without any params

или

<Route path="/one/:two" render={() => (<Component/>)} exact /> //Route with params, here `:two` is the parameter to route

Если вы хотите использовать маршруты, как в вашем примере, то это может быть достигнуто с помощьюBrowseRouter basename атрибут ,

<BrowserRouter basename="/one/two">
   <Route path="/three" render={() => (<Component/>)} exact />
</BrowserRouter>

А вам Link должно быть,

<Link to="/three"/> // renders <a href="/one/two/three">  
0 голосов
/ 01 июля 2019

Несколько причин, почему это не сработало для меня.Мне не хватало output: { publicPath: '/' }, в моем конфиге веб-пакета.

И еще более странным было то, что я использовал PureComponent вместо Component, что полностью нарушало рендеринг при перенаправлении на следующий шаг с аналогичным путем (x /y / z) или используя Link.

...