javascript - 在 react route 使用匹配

标签 javascript reactjs routes

在我的 <Switch /> 内我使用动态路径动态创建路由,理想情况下所有路由都将加载相同的组件。

我有一个像这样的 JSON 对象:

{
  "products": [{"name": "car"}]
}

其中只包含一系列产品,目前只有一个产品名为“汽车”。

<Switch />我循环遍历产品以创建如下路线:

{
  ProductHelper.getAllProductPages().forEach(product => {
          console.log(product.name);
          return (
            <Route path={'/' + product.name + '/:id' } component={Search} />
          );
  })
};

控制台日志完美地打印出“汽车”,因此我认为获取产品名称没有问题。但是,当我导航到/car/test 时,我希望这会加载搜索组件,但实际上并没有。

当我创建这样的路线时:

<Route path='/car/test' component={Search} />

这会完美地加载搜索组件,以证明该组件没有问题。

我真的不明白我在这里做错了什么,有人知道吗?

最佳答案

您应该使用.map 而不是.forEach,因为forEach 不返回数组。 map 确实

关于javascript - 在 react route 使用匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54469601/

相关文章:

javascript - 如何在 Fullcalendar 中同时显示背景渲染和事件背景?

go - 仅使用stdlib在Golang中进行路由

javascript - 切换子组件时如何隐藏父组件

routes - 如何在 Silex 中创建通配符路由 (/something/*)?

javascript - JS对象解构不定义变量名

javascript - 更改边框宽度而不移动其他表格元素

javascript - 我可以在不影响下面所有模块的情况下切换 float 模块吗?

javascript - 在 react 中设置按钮动画

javascript - redux useDispatch - 不断重新加载页面

java - 如何将参数从jsp传递到jsx文件?