在ReactJS中按类别id过滤结果可以通过以下步骤实现:
下面是一个示例代码:
import React, { useState } from 'react';
// 过滤结果组件
const FilteredResults = ({ results }) => {
return (
<div>
{results.map(result => (
<div key={result.id}>{result.name}</div>
))}
</div>
);
};
// 类别选择器组件
const CategorySelector = ({ categories, onSelectCategory }) => {
return (
<div>
{categories.map(category => (
<button key={category.id} onClick={() => onSelectCategory(category.id)}>
{category.name}
</button>
))}
</div>
);
};
// 父组件
const App = () => {
// 所有结果数据
const allResults = [
{ id: 1, name: 'Result 1', categoryId: 1 },
{ id: 2, name: 'Result 2', categoryId: 2 },
{ id: 3, name: 'Result 3', categoryId: 1 },
{ id: 4, name: 'Result 4', categoryId: 3 },
];
// 所有类别数据
const allCategories = [
{ id: 1, name: 'Category 1' },
{ id: 2, name: 'Category 2' },
{ id: 3, name: 'Category 3' },
];
// 当前选中的类别id
const [selectedCategoryId, setSelectedCategoryId] = useState(null);
// 根据类别id过滤结果数据
const filteredResults = selectedCategoryId
? allResults.filter(result => result.categoryId === selectedCategoryId)
: allResults;
// 更新选中的类别id
const handleSelectCategory = categoryId => {
setSelectedCategoryId(categoryId);
};
return (
<div>
<h1>Filtered Results</h1>
<CategorySelector categories={allCategories} onSelectCategory={handleSelectCategory} />
<FilteredResults results={filteredResults} />
</div>
);
};
export default App;
在上述示例代码中,我们通过useState钩子函数来管理组件的状态。allResults变量存储所有的结果数据,allCategories变量存储所有的类别数据。selectedCategoryId变量用于存储当前选中的类别id。根据selectedCategoryId变量的值,我们使用filter方法来过滤结果数据,得到filteredResults变量。然后将filteredResults传递给FilteredResults组件进行展示。CategorySelector组件用于选择类别id,并通过onSelectCategory回调函数更新selectedCategoryId变量。
这个示例中没有提及具体的腾讯云产品,因此无法提供相关产品和产品介绍链接地址。但你可以根据实际需求选择适合的腾讯云产品来支持ReactJS应用的部署和运行。
领取专属 10元无门槛券
手把手带您无忧上云