Передача параметров динамически генерируемым маршрутам реакции - PullRequest
0 голосов
/ 18 февраля 2019

Я использую react-router-dom и динамически генерирую свои маршруты из массива, например:

Данные маршрутов

const routes = [
  {
    path: '/',
    exact: true,
    component: () => <MyComponent />
  }
}

Генерация маршрутов

{routes.map((route, index) => {
  return <Route
    key={index}
    path={route.path}
    exact={route.exact}
    component={route.component}
  />
})}

Опора рендеринга Я узнал о рендере рендеринга (), который я мог бы определить, но даже как это сделать, поскольку компонент находится внутри переменной

const props = this.props;
{routes.map((route, index) => {
  return <Route
    key={index}
    path={route.path}
    exact={route.exact}
    render={(props) => <??? {...props} />
  />
})}

Как можноЯ передаю this.props во время генерации маршрута?

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете изменить свой массив так, чтобы он просто включал компонент вместо нового компонента функции, который рендерит компонент, и вы получите реквизиты, отправленные на него:

const routes = [
  {
    path: '/',
    exact: true,
    component: MyComponent
  }
}

Вы можете использовать любую переменную с большой буквы в качествекомпонент, так что вы также можете сделать это, если вы предпочитаете:

{routes.map((route, index) => {
  const Component = route.component;

  return <Route
    key={index}
    path={route.path}
    exact={route.exact}
    render={(props) => <Component {...props} />
  />
})}
...