React Hook useCallback — правильная запись?

Помогите разобраться в коде:
1. Если нет зависимостей, обязательно ли прописывать пустой массив или можно пропустить второй аргумент в useCallback, в чем разница?
2. Если нет аргумента, то почему запись вида _ => , а не вида ( ) => ?
const changeDragging = useCallback(val => setDragging(val), []);
const changeDraggingToTrue = useCallback(_ => changeDragging(true), [changeDragging]);
  • Вопрос задан
  • 708 просмотров
Решения вопроса 1
1) useCallback - эта функция мемоизирует callback по зависимостям в deps. Так что когда пишите в зависимостях пустой массив - то гарантируете что changeDragging будет всегда одной и той же функцией на протяжении жизненного цикла компонента. А это очень важно когда нужно вашу changeDragging передать как props в компонент ниже - т.к. одна и та же зависимость. changeDraggingToTrue зависит от changeDragging - так что в правилах хорошего тона changeDragging нужно указать как deps второго useCallback. Но так как changeDragging уже гарантирована неизменность, то можно и не указывать changeDragging как зависимость - ничего не поменяется (= до поры до времени)
2) это вкусовщина () => ... или _ => ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы