Skip to content

[bug] misidentification of set function in IIFE inside of hooks as its inside of useEffect, useLayoutEffect #967

Closed
@huynhducduy

Description

@huynhducduy

Describe the bug

When placing the set function inside of an IIFE (Immediately Invoked Function Expression) inside of other hooks, the plugin misidentifies the set function as it is inside of useEffect, useLayoutEffect, and triggers rules hooks-extra-no-direct-set-state-in-use-effect, hooks-extra-no-direct-set-state-in-use-layout-effect

Reproduction

const test = useCallback(() => {
  setSomething('') // doesn't trigger the rules

  ;(() => {
    setSomething('') // trigger the rules
  })()
}, [])

Expected behavior

Not trigger hooks-extra-no-direct-set-state-in-use-effect, hooks-extra-no-direct-set-state-in-use-layout-effect

Platform and versions

React v19.0.0
@eslint-react/eslint-plugin v1.30.1

Stack trace


Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: ReleasedThe issue has been releasedType: BugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions