use-state
Rule category
Convention.
What it does
Enforces destructuring and symmetric naming of useState
hook value and setter variables
Examples
Failing
import React, { function useState<S>(initialState: S | (() => S)): [S, React.Dispatch<React.SetStateAction<S>>] (+1 overload)
Returns a stateful value, and a function to update it.useState } from "react";
function function Example(): React.JSX.Element
Example() {
const const useStateResult: [number, React.Dispatch<React.SetStateAction<number>>]
useStateResult = useState<number>(initialState: number | (() => number)): [number, React.Dispatch<React.SetStateAction<number>>] (+1 overload)
Returns a stateful value, and a function to update it.useState(0);
// - 'useState' call is not destructured into value + setter pair.
return <JSX.IntrinsicElements.div: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>
div>{const useStateResult: [number, React.Dispatch<React.SetStateAction<number>>]
useStateResult[0]}</JSX.IntrinsicElements.div: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>
div>;
}
Passing
import React, { function useState<S>(initialState: S | (() => S)): [S, React.Dispatch<React.SetStateAction<S>>] (+1 overload)
Returns a stateful value, and a function to update it.useState } from "react";
function function Example(): React.JSX.Element
Example() {
const [const count: number
count, const setCount: React.Dispatch<React.SetStateAction<number>>
setCount] = useState<number>(initialState: number | (() => number)): [number, React.Dispatch<React.SetStateAction<number>>] (+1 overload)
Returns a stateful value, and a function to update it.useState(0);
return <JSX.IntrinsicElements.div: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>
div>{const count: number
count}</JSX.IntrinsicElements.div: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>
div>;
}
import React, { function useState<S>(initialState: S | (() => S)): [S, React.Dispatch<React.SetStateAction<S>>] (+1 overload)
Returns a stateful value, and a function to update it.useState } from "react";
function function Example(): React.JSX.Element
Example() {
const [{ const foo: string
foo, const bar: string
bar, const baz: string
baz }, const setFooBarBaz: React.Dispatch<React.SetStateAction<{
foo: string;
bar: string;
baz: string;
}>>
setFooBarBaz] = useState<{
foo: string;
bar: string;
baz: string;
}>(initialState: {
foo: string;
bar: string;
baz: string;
} | (() => {
foo: string;
bar: string;
baz: string;
})): [{
foo: string;
bar: string;
baz: string;
}, React.Dispatch<React.SetStateAction<{
foo: string;
bar: string;
baz: string;
}>>] (+1 overload)
Returns a stateful value, and a function to update it.useState({
foo: string
foo: "bbb",
bar: string
bar: "aaa",
baz: string
baz: "qqq",
});
return <JSX.IntrinsicElements.div: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>
div>{const foo: string
foo}</JSX.IntrinsicElements.div: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>
div>;
}