Я хочу использовать 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
eslint говорит мне, что у моего useEffect
есть 2 зависимости, которые я должен включить в массив зависимостей (второй аргумент useEffect) или полностью удалить массив.Второй вариант не подходит, так как мне не нужно, чтобы эти функции вызывались при каждом рендере.Следовательно, мне нужно включить их обоих.Есть статья о включении функций в массив зависимостей.Описанные здесь вещи в значительной степени мне понятны, но я все еще путаюсь с создателями избыточных действий в массиве зависимостей и с тем, как реагирует поверхностно сравниваемые функции.Для меня это немного сложно понять.Как правильно разрешить этот конкретный случай, как правильно использовать создателей избыточных действий при использовании эффекта в целом?