Skip to content

[Bug]: Rule: "react/no-unused-state": TypeError: Cannot read properties of undefined (reading 'references') #3568

Closed
@yurigenin

Description

@yurigenin

Is there an existing issue for this?

  • I have searched the existing issues and my issue is unique
    My issue appears in the command-line and not only in the text editor

Description Overview

When the prev state parameter (second parameter) of getDerivedStateFromProps is destructured in-place, the rule react/no-unused-state crashes

static getDerivedStateFromProps = ({value, disableAnimation}: ToggleProps, {isControlled, isOn}: ToggleState) => {

here, isControlled and isOn are destructured state properties.

TypeError: Cannot read properties of undefined (reading 'references')
Occurred while linting /Users/ygenin/src/pillar/src/datagrid/implementation/filtering/filterEditors/DateFilterEditor.tsx:57
Rule: "react/no-unused-state"
    at PropertyDefinition, ClassProperty (/Users/ygenin/src/pillar/node_modules/eslint-plugin-react/lib/rules/no-unused-state.js:388:34)

Expected Behavior

The eslint rule should handle the code without crashing.

The issue seems to be that the stateArg.name on the line below is undefined whereas it is expected to be 'state' or some other name if destructuring is not used.

const argVar = scope.variables.find((x) => x.name === stateArg.name);

eslint-plugin-react version

7.32.2

eslint version

8.2.0

node version

18.12.1

Activity

self-assigned this
on May 1, 2023
ljharb

ljharb commented on May 1, 2023

@ljharb
Member

Although lifecycles should always be a method and never a class field, it shouldn't crash regardless, so I'll have a fix pushed up shortly.

added 2 commits that reference this issue on May 1, 2023
670842a
f2d8d26

112 remaining items

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @ljharb@yurigenin

      Issue actions

        [Bug]: Rule: "react/no-unused-state": TypeError: Cannot read properties of undefined (reading 'references') · Issue #3568 · jsx-eslint/eslint-plugin-react