Существует этот раздел о React Hooks , который я не совсем понимаю, о чем он говорит:
Только Call Hooks из функций React
Не вызывать хуки из обычных функций JavaScript.Вместо этого вы можете:
✅ вызывать хуки из компонентов функции React.
✅ вызывать хуки из пользовательских хуков (о них мы узнаем на следующей странице).
Следуя этому правилу, вы гарантируете, что вся логика состояния в компоненте четко видна из его исходного кода.
Что означает вызывать хуки только из компонентов функции React и чем отличается функция Reactчем то, что я бы назвал обычным функциональным компонентом?
На мой взгляд, они одинаковы:
const App = () => {
useEffect(() => //do stuff);
return (
// return some sort of stuff here
)
}
Причина, по которой я спрашиваю, - это то, что у меня за крючки есть жалобы на то, какЯ использую useState
здесь:
const checkPermissions = () => { //when I change this to 'usePermissions', it works fine
const [locPermission, setLocPermission] = useState(null); // eslint error here
//'React Hook "useState" is called in function "checkPermissions" which
//is neither a React function component or a custom React Hook function.'
//Check for and set state for permissions here
return locPermission;
};