WbICHA, я так понимаю, у него eventListener юзает функцию getStatus, иначе вряд ли такой вопрос бы задавался. Тем более, что при каждом обновлении статуса функция getStatus бы итак обновлялась и при вызове ее без всякого useCallback в ней выводился бы последний статус.
sema-fedotov, можно, только все таки желательно бы знать подробности где getStatus используется, а то я то предположил единственный вариант, что функция используется в каком-то браузерном обработчике событий, но что-то засомневался.
Алексей, Так и есть, функция обрабатывает браузерные события. Есть вариант делать так: document.onclick = () => {}
Но просто хочется узнать, какой вариант является более рациональным.
sema-fedotov, не, так точно не надо. В данном случае решение с ref вполне нормальное, мне кажется.
Еще, тут в примере состояние хранится в верхнеуровневом компоненте App, при смене статуса все приложение будет перерисовываться, так и задумано было? И если приложение на всю страницу работает, то в этом случае клик лучше навешивать на верхнеуровневый элемент в App, на div, например, который будет во весь вьюпорт, тогда реф не нужен будет.