Решение вашей проблемы - не использовать useState
для объекта функции.
const validation = {
val: validateBiggerThan0
};
Или обновлять объект при каждом изменении вашего состояния:
useEffect(() => {
setValidation({
val: validateBiggerThan0
});
}, [ state, setValidation, validateBiggerThan0 ]);
// Don't remove "state" from the dependency array.
Не забудьте обернуть свои функции проверки в useCallback
хук, если вы используете метод useEffect
.
const validateBiggerThan0 = useCallback(() => {
return state.num > 0;
}, [state]);