Я использую реагирование 16.8 и eslint-plugin-Reaction-hooks 1.6.0. Когда я использую условные хуки, я надеюсь, что eslint может предупредить меня. есть мой конфиг:
"eslintConfig": {
"parser": "babel-eslint",
"plugins": [
"react-hooks"
],
"rules": {
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn"
}
}
если я использую условные хуки в пользовательских хуках, будет выдано следующее предупреждение: "React Hook \" useState \ "вызывается условно. React Hooks должны вызываться в том же порядке в каждом компоненте рендеринга."
function useCustomHook() {
if (Math.random() > 0.5){
const [a, setA] = useState(0)
}
}
но если я использую хуки в компоновке функций, это не сработает.
function MyComponent() {
if (Math.random() > 0.5){
const [a, setA] = useState(0)
}
return null
}