Использование создателей избыточных действий в хуке useEffect

Я хочу использовать useEffect запускать 2 функции (которые являются создателями избыточных действий) - одна функция при монтировании компонента, а другая - при размонтировании, например:

// ...

function MyComp(props) {
  function handleSelectItem(itemId) {
    const data = props.data.filter(/* some filter logic depending on itemId */);
    props.selectItem({ itemId, data });
  }

  useEffect(() => {
    handleSelectItem(1);
    return props.deselectItem;
  }, []);
}

export default connect(null, {selectItem, deselectItem})(MyComp)

Это работает, но react-hooks/exhaustive-deps Правило Эслинт говорит мне, что мой useEffect имеет 2 зависимости, которые я должен включить в массив зависимостей (второй аргумент useEffect) или полностью удалить массив. Второй вариант не подходит, так как мне не нужно, чтобы эти функции вызывались при каждом рендере. Следовательно, мне нужно включить их обоих. Есть статья о включении функций в массив зависимостей. Описанные здесь вещи в значительной степени мне понятны, но я все еще путаюсь с создателями избыточных действий в массиве зависимостей и с тем, как реагирует поверхностно сравниваемые функции. Для меня это немного сложно понять. Как правильно решить этот конкретный случай, как правильно использовать создателей избыточных действий при использовании эффекта в целом?

0 ответов

Другие вопросы по тегам