Задать вопрос

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

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

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽