分享
三行代码  ›  专栏  ›  技术社区  ›  Itay Braha

反应暂停导致路由器道具未定义

  •  0
  • Itay Braha  · 技术社区  · 1 周前

    我使用悬念的方式如下:

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

    然后,在“课程”组件上,我尝试按如下方式访问路由器道具:

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

    然而,路由器属性变成了未定义的。 访问这些道具是可能的,直到我尝试添加这个反应迟钝加载。

    为了解决这个问题,我还尝试了spread操作符语法:例如 <Courses {...props} />

    1 回复  |  直到 1 周前
        1
  •  3
  •   UjinT34    1 周前

    props 向下:

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

    withRouter 临时

    useRouteMatch