【发布时间】:2020-07-09 22:20:26
【问题描述】:
我的屏幕上有多张卡片。每张卡片都将字符串显示为“Popular”/“Latest”/“Old”。我从后端获得卡上的这些值。我必须实现过滤选项,根据流行度、最旧等过滤这些卡片。到目前为止我已经这样做了,但不知道如何过滤这些卡片。
<Dropdown
id="sorting"
items={this.sortOptions}
itemToString={(item) => (item ? item.label : "")}
onChange={this.onChange}
name="sorting"
label="All"
titleText="Sort"
type="default"
/>
sortOptions = [
{ value: "Popular", label: "Popular" },
{ value: "Old", label: "Old" },
{ value: "Latest", label: "Latest" },
];
OnChange 方法:
onChange = (event) => {
let filtered = this.sortOptions.filter(
(val) => val.value === ProductState.Old
);
console.log("filtered", filtered);
};
控制台输出:Object { value: "Old", label: "Old" }
但我想根据下拉列表中选择的值过滤我的卡片。谁能帮我解决这个问题。
【问题讨论】:
-
您似乎正在尝试自己过滤过滤器选项。你指的这些“卡片”是什么?
-
在过滤器函数内部,与事件值进行比较。
-
@David Cards 包含这些值作为字符串。假设我有 10 张卡片,其中 3 张卡片为“旧”,4 张卡片为“流行”,依此类推。因此,如果我从下拉列表中选择“流行”,那么我只想在屏幕上显示 4 张卡片
-
@Singh:这些“卡片”在您的组件中的什么位置?如果您还没有实现它们,那么这将是您尝试过滤它们之前的第一步。
-
我已经创建了这些卡片,但没有在上述问题中编写该代码
标签: javascript reactjs typescript drop-down-menu filtering