Мне нужно иметь возможность отслеживать количество экземпляров моего компонента, как мне это сделать в React с использованием функциональных компонентов?
Я пытался использовать useRef()
, но похоже, что он сохраняетзначение между рендерами - оно не разделяет значение между экземплярами компонента.
Пока единственное решение, которое я придумала, это хитрое, я надеюсь, что есть способ сохранить его как-нибудь более элегантным способом.
const [ ident, setIdent ] = useState(0);
useEffect(() => {
if (document.sometring === undefined) {
document.sometring = 0;
} else {
document.sometring++;
}
setIdent(document.sometring);
}, []);
Обновление вопроса: Вариант использования более актуален, я хочу знать, как это сделать, а не практично. Я хочу, чтобы каждый экземпляр моего независимого компонента имел уникальный последовательный идентификатор (например, «кнопка-42»), поэтому такие решения, как «дать ему случайный код», также не будут работать для меня. Глобальные менеджеры состояний, такие как redux или context, также не могут быть решением, потому что, скажем, если я с открытым исходным кодом мой компонент на GitHub, я не должен просить пользователей также установить redux или использовать React.Context. И, конечно же, этот идентификатор не должен меняться, если компонент перерисовывается.