new Set([...previousState, arr]));
но ничего не получается , можете подсказать как я могу это реализовать ?
А зачем в initial state new Set передавать ?
когда делаю так выходят ошибки
сорри , неправильно выразилась , пытаюсь создать коллекцию без дублирующих значении
Не туда
Так ты стейт не до конца затипизировала, у тебя ведь может быть кейс когда у тебя один элемент ещё а ты заьипизировала как массив и все , а другие варианты не учла
дело в том что он всегда будет массивом ,
Да , но там ведь может быть один объект?
тогда как я могу затипизировать его?
Я бы попробовал для начала в начальное состояние передать пустой массив. А затипизировать RolePermisoons | RolePermissions[] | []
А чем массив с одним элементом не массив? Совет ниже выглядит как вредный Выше верно писали, что Set от списка отличается довольно фундаментально, и эти типы не смешиваются.
Вот здесь вы говорите, что тип стейта - массив, а в начальное состояние передаёте Set, который массивом не является. Если там нужен Set, то и укажите везде его, без массива. Например, так: `useState<Set<RolePermissions>>(new Set())
ну я пробовала вывести в консоль и там отображаются изменения сета
может быть причина в forEach
А консоль более реактивна) Например, вот тут я могу видеть мой элемент в объекте, выведенном до того, как я этот элемент добавил
дело в том что set перебирается с for и forEach . с map не смогла сделать
Кстати да, в коллбеке функция, которая ничего не делает
Обсуждают сегодня