Объединение React.useCallback с создателями действий Redux - PullRequest
0 голосов
/ 24 июня 2019

Я переписал некоторые из моих обычных компонентов в функциональный компонент, потому что мне нравится использовать новый хук useContext для передачи реквизитов (в основном это функция, которая должна использоваться во вложенных дочерних компонентах), однако, это вызывает некоторые ненужные повторы и яЯ пытаюсь предотвратить это, обернув некоторые из моих функций хуком useCallback.Мне очень нравится идея этого, но в некоторых моих функциях я использую другие функции, которые хранятся в подпорках (например, создатели с редуктивным действием).Давайте возьмем следующий код в качестве примера:

const deleteNode = useCallback((node) => {
    if (currentNodeEditing && currentNodeEditing.id === node.id) {
      props.closeSideMenu(sideMenuType.editNode);
    }

    props.deleteNode(node.questionnaire, node);
  }, [currentNodeEditing]);

В этой функции props.deleteNode & props.closeSideMenu являются Redux Action Creators.Я использую правило eslint "react-hooks/exhaustive-deps", и это дает мне предупреждение о том, что в хуке useCallback отсутствует зависимость от реквизита.Но если я передам свойство props, моя функция будет создаваться заново при каждом изменении реквизита.Мои функции closeSideMenu и deleteNode никогда не изменятся, потому что они являются создателями избыточных действий.

Как лучше всего обернуть эту функцию с помощью useCallback?Должен ли я просто передать реквизиты в качестве аргумента хуку useCallback, могу ли я просто проигнорировать ошибку lint, если я удалю структуру реквизита (я предпочитаю не делать этого)?

...