Custom React Hook Must Use `use`
You can build your own hooks by composing existing hooks.
Here, I create a custom hook useBoolean
by wrapping useState
:
const useBoolean = () => useState(true);
Which I can then use in my component:
function Value() {
const [value, setValue] = useBoolean();
return <div onClick={() => setValue(!value)}>Click me {String(value)}</div>;
}
The react documentation very politely asks that you start the name of your hook with use
. This is isn't strictly necessary, and it will still work if you call it:
const doBoolean = () => useState(true);
But that violates the Rules of Hooks.
You can include an eslint plugin that will prevent you from breaking the rules. This plugin is installed by default in create-react-app
version 3.