React.createRef () внутри useMemo - PullRequest
       27

React.createRef () внутри useMemo

0 голосов
/ 19 февраля 2020

Безопасно ли использовать такой шаблон:

const appLoaders = useMemo(() => React.createRef(), [])

Дело в том, что я использую этот ref в useEffect, и он необходим в массиве зависимостей (исчерпывающе-deps). Приведенный выше шаблон делает свое дело, и все, кажется, работает - без напоминания, когда я помещаю ссылку в массив зависимостей, приложение находилось в постоянном повторном отображении.

Мне просто интересно, есть ли какие-то «ловушки», которые удивит меня при определенных обстоятельствах.

1 Ответ

4 голосов
/ 19 февраля 2020

Не вижу проблем с вашей версией, но

const appLoaders = useRef();

выглядит намного короче и делает то же самое (ссылочное равенство при повторном рендеринге, мы устанавливаем начальное значение, изменение значения не вызывает повторное -render).

PS На самом деле useRef не является заменой для React.createRef (у них другое назначение, но похожие имена, иногда люди неправильно понимают / неправильно), поэтому не путайте сходство.

Но в данном конкретном случае они определенно взаимозаменяемы

...