React Suspense приводит к тому, что пропсы маршрутизатора не определены - PullRequest
0 голосов
/ 01 августа 2020

Я использую Suspense следующим образом:

<Route
          path="/courses"
          render={() => (
            <Suspense fallback={HomePage}>
              <Courses />
            </Suspense>
          )}
        />

затем, в компоненте Courses, я пытаюсь получить доступ к реквизитам маршрутизатора следующим образом:

<Link
            to={{
              pathname: this.props.match.url + "/" + course.id,
              search: "?title=" + course.title,
            }}
            key={course.id}
          >

неопределенный. Доступ к этим свойствам был возможен до тех пор, пока я не попытался добавить эту загрузку React.lazy. это просто предположение.

, чтобы решить эту проблему, я также попробовал синтаксис оператора распространения: например, <Courses {...props} /> - который не работал.

Как мне получить доступ к свойствам маршрутизатора при использовании React .lazy?

Заранее спасибо!

1 Ответ

3 голосов
/ 01 августа 2020

Вам необходимо передать props вниз:

<Route
      path="/courses"
      render={(props) => (
        <Suspense fallback={HomePage}>
          <Courses {...props}/>
        </Suspense>
      )}
    />

Или используйте withRouter HO C

Для функциональных компонентов вы можете использовать useRouteMatch

...