【发布时间】:2025-12-10 20:25:03
【问题描述】:
我正在建立该国的餐馆目录。 API 返回一个对象数组,每个对象由 restaurantName、restaurantLocation、restaurantPriceRange 等字段组成。
我想创建一个过滤组件,它将餐厅数组减少为仅包含与搜索条件匹配的餐厅的子集。我还需要通过 URL 传递过滤器值,我认为我应该使用路由器。
我正在考虑使用 useState 挂钩存储初始数据集,然后使用 useReducer 存储活动过滤器选择和过滤后的餐厅集合的子集,其中仅匹配搜索条件,但我觉得这是一个笨拙的解决方案,实际上,我会复制整个餐厅集合的一个子集。
但是,如果我不使用 useState 将初始数据集存储在单独的对象中,则一旦应用过滤器,所有不匹配的内容将永远消失。
实现这一目标的最佳方法是什么?
免责声明:我知道如何在 JavaScript 中过滤数组,并且完全了解过滤器、映射、排序等功能。这个问题是关于 React 生态系统的,什么是构建我的最干净、最简单和最好的方法React 应用程序中的代码。我知道当我为它编写代码时,我仍然必须在我的 reducer 中使用 Array.prototype.filter。
【问题讨论】:
-
Array.prototype.filter() 创建新数组google.com/…
-
也许我应该更具体一些。这个问题纯粹是关于 React 生态系统的,我正在寻找一个最干净、最简单和最容易维护的解决方案。我已经知道如何使用 vanilla JS 过滤原始 JS 对象。我专门询问有关 React API 的建议。谢谢。
-
但是 React 使用像 Array.prototype.map() 这样的 js 来显示列表组件,react 是 MVC 的 V 仅此而已,换句话说:你在 js 上处理数据
-
react 是 javascript,filter 是最好的方法,没有 react 助手或内置方法来过滤数组。它同样使用 javascript
-
感谢您的评论。你能建议 React 组件的结构吗?
标签: reactjs state filtering use-state use-reducer