Functional Componentで'missing display name'エラー
問題
ReactのFunctional Componentで、引数を適用して関数を返したい場合がある。
この際、関数内部で関数を定義することになるが、この内部の関数を無名関数にするとESLintでエラーが出る。
const createIcon = (name: string) => {
    return (props => <i {...props} class={name}>)
}Component definition is missing display name react/display-name
原因
デバッグのために、全てのコンポーネントに名前を付けることが推奨されるため。上だとcreateIconの返り値が無名コンポーネントになるので怒られる。
対策①
関数名をつければよい。
const createIcon = (name: string) => {
    return (
        function icon(props) {
            return <i {...props} class={name}>
        }
    )
}もしくは
const createIcon = (name: string) => {
    const icon = (props) =>  <i {...props} class={name}>
    return icon
}それか、debuggableにする価値もないような部分なら抑制すればよい。
const createIcon = (name: string) => {
    // eslint-disable-next-line react/display-name
    return (props => <i {...props} class={name}>)
}missing display nameと言われているが、displayNameを指定する必要はない。(が、指定を推奨されている)

