Я думаю, что вы полностью пропустили назначение функции javascript array::map
, она должна возвращать значение для каждого элемента , для которого она вызывается. Он возвращает массив той же длины, что и итеративный массив. Вы на самом деле немного фильтруете свои результаты.
Фильтр / Карта - Фильтровать результаты массива затем сопоставить с реакцией JSX
{
lists
.filter((list: listInterface) => list.display) // exploit truthy/falsey display value
.map((list: listInterface) => (
<ToDoApp list={lists[0]} />
))
}
Reduce - Позволяет "фильтровать" результаты непосредственно в реакцию JSX
{
lists.reduce((filteredLists: listsInterface, list: listInterface) => {
if (list.display) {
filteredLists.push(<ToDoApp list={lists[0]} />);
}
return filteredLists
}, [])
}