Допустим, у моего компонента есть часть состояния, представляющая собой набор выбранных идентификаторов.Javascript имеет тип Set
, поэтому я пробую это:
let [selectedIDs, setSelectedIDs] = useState(new Set());
Javascript Set
сам по себе изменчив, поэтому я в замешательстве.
function toggleSelectedID(id) {
let set = selectedIDs;
if (set.has(id)) { set.delete(id) }
else { set.add(id) }
// ???
setSelectedIDs(set);
}
Если Set
объекты, которые неизменны, я бы создал новый Set
с добавленным или удаленным элементом и передал этот новый Set
в setSelectedIDs
, изменив состояние в этой точке.
Но с изменяемым Set
, что произойдет, если мы вернемся в строку ???
?Будет ли React в плохом состоянии, потому что я «дошел до» его состояния и мутировал, не сообщая об этом официально с помощью setSelectedIDs
?