distCom
@distCom
Начинающий программист

Как управлять чекбоксом с помощью фильтрации?

Здравствуйте, я хочу сделать управляемый чекбокс, у которого checked становится true, если id поста совпадает с id из другого массива, но не понимаю как это сделать.
При клике на чекбокс id поста добавляется в массив закладок, поэтому хочется сделать его контролируемым
Массив с айдишниками, который я вытаскиваю из стора редакс:
const bookmarksData = useSelector((state) => state.bookmark.bookmarksData);

Сам массив выглядит вот так:
[
  {
    "id": 5
  },
  {
    "id": 2
  },
  {
    "id": 19
  },
  {
    "id": 22
  },
  {
    "id": 23
  },
  {
    "id": 21
  },
  {
    "id": 25
  },
  {
    "id": 35
  },
  {
    "id": 22
  },
  {
    "id": 12
  },
  {
    "id": 27
  },
  {
    "id": 10
  },
  {
    "id": 10
  },
  {
    "id": 5
  },
  {
    "id": 1
  },
  {
    "id": 1
  }
]

Обычный массив, который состоит из обьектов с id

Посты я вывожу с помощью map и в цикле пытался в checked добавить функцию с фильтром, которая бы искала совпадающие id и если они есть, то ставить в checked true, но после этой функции checked true работает на все посты. Не очень понимаю в чем проблема, почему все посты стали checked true
//код вне цикла
const setChecked = (idS) => {
   bookmarksData.filter((e) => e.id === idS) ? true : false
 }

//код в цикле, где я вывожу посты
<Checkbox
                  icon={<BookmarkBorderIcon />}
                  checkedIcon={<BookmarkIcon />}
                  checked={() => setChecked(id)}
                  onClick={() => savedBokmark({ id })}
 />

61bf71cb17201749263374.jpeg

Можете подсказать в чем проблема и как сделать, чтобы чекбокс нормально работал с фильтрацией?
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
distCom
@distCom Автор вопроса
Начинающий программист
Кажется я понял в чем была проблема, решил ее через find, а не filter, вроде бы теперь работает нормально
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы