React Router 不渲染 Route 组件

安德烈·库拉金

我有一组对象,我想用它们来渲染一些模板化页面。我尝试通过数组进行映射并为每个对象返回一个路由:

  const Component = () => (
  <div className={`${styles["body"]}`}>
    {heroesArray.map((hero, i) => {
      let randomQuote = getRandomQuote(hero.quotes);
      let path = hero.name
        .toLowerCase()
        .split(" ")
        .join("_");
      return (
        <div className="thumbnail">
          <Thumbnail
            key={i}
            hero={hero}
            randomQuote={randomQuote}
            path={path}
          />
          <Route <!-- HERE I CREATE A ROUTE -->
            path={path}
            component={() => <HeroPage hero={hero} />}
            key={i + 365}
          />
        </div>
      );
    })}
  </div>
);

缩略图包含在一个链接标签中,该标签通向作为道具传递的路径。当我尝试单击其中一个缩略图时,没有渲染任何内容。

完整代码和工作应用程序在这里:https : //repl.it/repls/NoteworthyDetailedForm

1

我究竟做错了什么?

周威廉

编辑:

我在这里工作:https : //repl.it/@wichopy/NoteworthyDetailedForm

我做了几件事。

路径应以正斜杠 ('/') 开头。我在 Main 组件中定义了所有路由,并将其放在一个 Switch 中,该 Switch 一次只能渲染一条路由。

原文:Route 中的组件 prop 应该只是未实例化的组件,React 路由器将处理渲染它并将 props 传递给它。

如果你想控制按下什么道具,使用渲染而不是组件:

 <Route <!-- HERE I CREATE A ROUTE -->
    path={path}
    render={(props) => <HeroPage hero={hero} {...props}/>}
    key={i + 365}
 />

如果您打算只使用一个组件:

 <Route <!-- HERE I CREATE A ROUTE -->
    path={path}
    component={HeroPage}
    key={i + 365}
 />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React Router不渲染组件

来自分类Dev

React Router Switch 不渲染特定组件

来自分类Dev

React-router 不渲染组件

来自分类Dev

React组件不渲染

来自分类Dev

React Router - 通过 props 将匹配传递给使用 Route::render 渲染的组件

来自分类Dev

React-Router Switch 组件不渲染具有相同路径的组件

来自分类Dev

React Context不渲染组件

来自分类Dev

React Redirect不渲染组件

来自分类Dev

在React Router中渲染多个组件

来自分类Dev

网址更改但未渲染组件React Router

来自分类Dev

无法使用React Router渲染组件

来自分类Dev

通过 React-router 渲染子组件

来自分类Dev

React Router 组件渲染两次

来自分类Dev

无法使用React Router和React Bootstrap渲染组件

来自分类Dev

Array.map()不渲染React组件

来自分类Dev

为什么 React 组件不渲染?

来自分类Dev

在 Route 之外渲染组件

来自分类Dev

React-Router子路径渲染未触发正确的组件

来自分类Dev

如何使用react-router渲染嵌套组件

来自分类Dev

React Router Link未渲染组件,但更改了URL

来自分类Dev

用户登录后如何使用React Router渲染不同的组件

来自分类Dev

使用React Router重定向后重新渲染组件

来自分类Dev

react-router中的嵌套组件未渲染

来自分类Dev

如何使用react-router根据路线渲染容器/组件?

来自分类Dev

React-router 更改位置但不渲染组件

来自分类Dev

使用 React Router 渲染组件和 Redux 崩溃

来自分类Dev

具有动态ID的基本React Route不呈现组件

来自分类Dev

使用react-router-dom(<Route>)将var从->传递到React中的功能组件

来自分类Dev

更改网址时,react router dom不更新类组件