ReactJS - / path /: id перенаправляет строку: id вместо значения id - PullRequest
0 голосов
/ 18 июня 2019

Я пишу правило перенаправления с реакции-маршрутизатором. Определил мой маршрут следующим образом:

{
  path: '/inputs',
  component: InputsContainer,
  label: 'Inputs',
  icon: 'fal fa-mobile',
  menu: false,
  routes: [
    {
      path: '/inputs',
      component: () => <Redirect to="/om/inputs" />,
      index: true,
      exact: true
    },
    {
      path: '/inputs/:id',
      component: (location) => <Redirect exact from="/inputs/:id" to={`/om/orders/:id`} />,
      label: "Order Details",
      menu: false
    },
    notFoundRoute
  ]
}

Здесь / input перенаправляет на / om / input без проблем. Но / input / 23 перенаправляется на / om / input /: id

Что мне здесь не хватает? Я хочу, чтобы это было перенаправлено на / ом / входы / 23

1 Ответ

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

Вам нужно указать URL вместо Redirect. Поскольку вы используете шаблон рендеринга реквизита, вы можете получить его, используя match.params.id, где match получается из параметра функции обратного вызова. Убедитесь, что вы используете render вместо Component в качестве опоры для маршрута

{
  path: '/inputs',
  component: InputsContainer,
  label: 'Inputs',
  icon: 'fal fa-mobile',
  menu: false,
  routes: [
    {
      path: '/inputs',
      render: () => <Redirect to="/om/inputs" />,
      index: true,
      exact: true
    },
    {
      path: '/inputs/:id',
      render: ({match}) => <Redirect exact from="/inputs/:id" to={`/om/orders/${match.params.id}`} />,
      label: "Order Details",
      menu: false
    },
    notFoundRoute
  ]
}
...