У меня проблема при попытке отфильтровать JSON данные в приложении React ...
My JSON:
function fakeListReports()
{
return [
{
id: 0,
project: {
id: 7,
name: "Music Arena",
/...more datas.../
},
redacteur: "Ced",
/...more datas.../
},
{
id: 1,
project: {
id: 1,
/...more datas.../
},
redacteur: "Ced",
/...more datas.../
},
{
id: 2,
project: {
id: 1,
name: "Planet Express",
/...more datas.../
},
redacteur: "Ced",
/...more datas.../
}
];
}
Я хочу отфильтровать его по Идентификатор проекта. Я бы вернул список со всеми отчетами, относящимися к одному проекту, по его идентификатору ...
Я пытаюсь использовать функцию фильтра, но она всегда возвращает пустую вкладку ... Я протестировал много решений, но безуспешно. И я убежден, что функция фильтра - лучший способ достичь хорошего результата ...
Мой код JSX:
const ListReportsByProject = ({ match }) => {
const id = match.params;
const [listReport, setListReport] = useState([]);
const reports = fakeData.fakeListReports();
const fetchReports = id => {
console.log(reports);
console.log(id.id);
const reportsByProject = reports.filter(r => r.project.id === id.id);
console.log(reportsByProject);
};
useEffect(() => {
fetchReports(id);
}, [id]);
return (
<div>
<p>test route</p>
</div>
);
};
Можете ли вы мне помочь? У меня нет решения, несмотря на мои многочисленные поиски ...
Спасибо
Редактировать:
В переменной reportsByProject, когда, например, id.id = 1, я хочу получить JSON со всеми и только отчетами с идентификатором проекта = 1.
В этом примере reportsByProject должен быть равен:
[
{
id: 1,
project: {
id: 1,
/...more datas.../
},
redacteur: "Ced",
/...more datas.../
},
{
id: 2,
project: {
id: 1,
name: "Planet Express",
/...more datas.../
},
redacteur: "Ced",
/...more datas.../
}
];
Функция фильтра всегда возвращает пустую вкладку .
Tu значение id.id правильное ...