Если я использую локальную функцию в функции, которую я передаю useMemo
(или другим хукам), правило linter исчерпывающего deps запрашивает локальную функцию в списке зависимостей useMemo
. Я понимаю, что с каждым рендером локальная функция - это новый экземпляр. Но поскольку он никогда не меняется, на мой взгляд, нет необходимости вносить его в список зависимостей, особенно потому, что тогда мне нужно использовать useCallback
для функции (что делает код более сложным).
Здесь рабочий пример:
const [inputNumber, setInputNumber] = useState(35);
function calculateFibonacciNumber(number) {
return number < 1 ? 0 : number <= 2 ? 1
: calculateFibonacciNumber(number - 1) + calculateFibonacciNumber(number - 2);
};
const fibonacciNumber = useMemo(() => {
return calculatedFibonacciNumber = calculateFibonacciNumber(inputNumber);
}, [inputNumber]); // Here the exhaustive-deps rule wants calculateFibonacciNumber in the dependency list
Итак, есть ли реальная причина, по которой calculateFibonacciNumber
следует поместить в список зависимостей (через useCallback
)?