Skip to content

[Bug]: react/jsx-no-literals is not compatible with for-of loop #3919

Open
@ARiyou2000

Description

@ARiyou2000

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

The config:

"react/jsx-no-literals": [
     "warn",
      {
            noStrings: false,
            ignoreProps: true,
            allowedStrings: [],
            noAttributeStrings: false,
            elementOverrides: {
              Trans: {
                allowElement: true,
                // applyToNestedElements: true
              },
        },
    }
}

The line that caused the problem (line 406 in logs)

    for (const training of formData.trainings) {
      if (!training.name.trim()) {
        toast.error("All training modules must have a name");
        return;
      }

      if (!training.description.trim()) {
        toast.error("All training modules must have a description");
        return;
      }
    }

How I fixed it:

  formData.trainings.forEach((training) => {
      if (!training.name.trim()) {
        toast.error("All training modules must have a name");
        return;
      }

      if (!training.description.trim()) {
        toast.error("All training modules must have a description");
        return;
      }
    });

ESLint error logs:

[Error - 2:23:49 AM] An unexpected error occurred:
[Error - 2:23:49 AM] TypeError: Cannot read properties of null (reading 'type')
Occurred while linting /home/ariyou2000/Documents/projects/lingualinq/lingualinq/libs/components/src/course/course-creation-form.tsx:406
Rule: "react/jsx-no-literals"
    at isRequireStatement (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint-plugin-react@7.37.4_eslint@9.23.0_jiti@2.4.2_/node_modules/eslint-plugin-react/lib/rules/jsx-no-literals.js:188:16)
    at /home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint-plugin-react@7.37.4_eslint@9.23.0_jiti@2.4.2_/node_modules/eslint-plugin-react/lib/rules/jsx-no-literals.js:443:16
    at Array.filter (<anonymous>)
    at VariableDeclaration (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint-plugin-react@7.37.4_eslint@9.23.0_jiti@2.4.2_/node_modules/eslint-plugin-react/lib/rules/jsx-no-literals.js:441:12)
    at ruleErrorHandler (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:1311:33)
    at /home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/safe-emitter.js:45:46
    at Array.forEach (<anonymous>)
    at Object.emit (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/safe-emitter.js:45:26)
    at NodeEventGenerator.applySelector (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/node-event-generator.js:338:17)
    at NodeEventGenerator.applySelectors (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/node-event-generator.js:382:10)
    at NodeEventGenerator.enterNode (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/node-event-generator.js:396:8)
    at runRules (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:1362:22)
    at #flatVerifyWithoutProcessors (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:2290:22)
    at Linter._verifyWithFlatConfigArrayAndWithoutProcessors (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:2381:43)
    at Linter._verifyWithFlatConfigArray (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:2484:15)
    at Linter.verify (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:1840:10)
    at Linter.verifyAndFix (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:2749:20)
    at verifyText (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/eslint/eslint.js:336:45)
    at ESLint.lintText (/home/ariyou2000/Documents/projects/lingualinq/lingualinq/node_modules/.pnpm/eslint@9.23.0_jiti@2.4.2/node_modules/eslint/lib/eslint/eslint.js:977:5)
    at async /home/ariyou2000/.cursor/extensions/dbaeumer.vscode-eslint-3.0.10/server/out/eslintServer.js:1:26981
    at async M (/home/ariyou2000/.cursor/extensions/dbaeumer.vscode-eslint-3.0.10/server/out/eslintServer.js:1:19807)
    at async /home/ariyou2000/.cursor/extensions/dbaeumer.vscode-eslint-3.0.10/server/out/eslintServer.js:1:234554
    at async /home/ariyou2000/.cursor/extensions/dbaeumer.vscode-eslint-3.0.10/server/out/eslintServer.js:1:63886

Expected Behavior

eslint-plugin-react version

7.37.4

eslint version

^9.23.0

node version

v20.18.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions