javascript - 如何按键值过滤汽车

标签 javascript reactjs react-router react-router-dom

我实现了汽车拍卖,并且目录组件中有一个汽车项目列表。我有指定汽车类型的按钮(SUV、自行车、乘客......) enter image description here

当我单击任何按钮时,我想重定向到目录,其中包含根据类型汽车过滤的汽车列表。 所以带有对象的数据位于 App.js 中 我在 App.js 中有一个 Catalog 组件 目录组件有一个 CarItems 列表(CarItem 是 Catalog 中的一个子组件,它接收 Prop 并显示有关每辆车的信息(我使用 map 来显示整个列表)。 目录未过滤的问题。 我在 App.js 中声明了 Route。

 <Route
        exact
        path="/catalog/typeCar"
        render={({ match }) => (
          <Catalog item={data.find((item) => String(item.typeCar) === String(match.params.typeCar))} />
        )}

按钮位于另一个组件中,我为每个按钮创建了链接:

      <Link  to={`/catalog/passanger`}><img src={img_4} className='white-fill mr-2' width='70px'/></Link> 
            
      <Link  to={`/catalog/bike`}> <img src={img_1} width='70px' className='white-fill mr-2' /></Link>

      <Link  to={`/catalog/suv`}> <img src={img_2} width='70px' className='white-fill' /></Link>

      <Link  to={`/catalog/bus`}> <img src={img_3} width='70px' className='white-fill ml-2' /></Link>

 </Col>

所以我单击一个按钮,看到 URL 已更改:http://localhost:3000/catalog/passanger ,但页面上没有任何信息。它不会重定向到带有 CarItems 列表的目录页面(组件)

最佳答案

您使用 URL params 错误地定义了路线。您需要使用 :typeCar:

<Route
  exact
  path="/catalog/:typeCar" // Here
  render={({ match }) => (
    <Catalog
      item={data.find(
        (item) => String(item.typeCar) === String(match.params.typeCar)
      )}
    />
  )}
/>

此后,当您使用 Linkhistory.push 前往 /catalog/bike 等路线时, match.params.typeCar 的值(在路线的匹配对象中)将是bike

关于javascript - 如何按键值过滤汽车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66843938/

相关文章:

javascript - woocommerce中的增量值字段问题

javascript - 我想用一个按钮更改文本

javascript - 如何正确设置 Material-ui 中某些元素的颜色?

javascript - 如何在打印时隐藏按钮菜单?

javascript - React 中的嵌套路由无法使用 React-router v4 正确渲染

javascript - 如何获取以子字符串开头的所有 elementID

reactjs - 如何在 React.js 应用程序中刷新 JWT token ?

javascript - ReactJS 和带有 react-router v4 的嵌套路由

javascript - 检测 url(在 ReactJS 上)以隐藏页面上的元素

javascript - Firefox 从 34 更新到 35 后,OS.File 使我的扩展程序崩溃