Eslint-plugin-react: Cannot read property 'filter' of undefined (require-default-props)

Created on 25 Jan 2017  路  3Comments  路  Source: yannickcr/eslint-plugin-react

Hi!
Just updated my packages and now I get this error from eslint:

Cannot read property 'filter' of undefined
TypeError: Cannot read property 'filter' of undefined
    at getPropTypesFromTypeAnnotation (/$PROJECT$/node_modules/eslint-plugin-react/lib/rules/require-default-props.js:167:29)
    at handlePropTypeAnnotationClassProperty (/$PROJECT$/node_modules/eslint-plugin-react/lib/rules/require-default-props.js:287:42)
    at Object.ClassProperty (/$PROJECT$/node_modules/eslint-plugin-react/lib/rules/require-default-props.js:458:11)
    at EventEmitter.updatedRuleInstructions.(anonymous function) (/$PROJECT$/node_modules/eslint-plugin-react/lib/util/Components.js:581:75)
    at emitOne (events.js:101:20)
    at EventEmitter.emit (events.js:188:7)
    at NodeEventGenerator.enterNode (/$PROJECT$/node_modules/eslint/lib/util/node-event-generator.js:39:22)
    at CodePathAnalyzer.enterNode (/$PROJECT$/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js:607:23)
    at CommentEventGenerator.enterNode (/$PROJECT$/node_modules/eslint/lib/util/comment-event-generator.js:98:23)
    at Controller.enter (/$PROJECT$/node_modules/eslint/lib/eslint.js:928:36)

My package.json looks something like:

{
    "eslint": "3.14.0",
    "eslint-config-airbnb": "14.0.0",
    "eslint-loader": "1.6.1",
    "eslint-plugin-flowtype": "2.30.0",
    "eslint-plugin-import": "2.2.0",
    "eslint-plugin-jsx-a11y": "3.0.2",
    "eslint-plugin-react": "6.9.0"
}

I manage to fix the problem in react-default-props.js by checking if annotation.properties does exist inside of getPropTypesFromTypeAnnotation-function

function getPropTypesFromTypeAnnotation(node) {
      var properties;

      switch (node.typeAnnotation.type) {
        case 'GenericTypeAnnotation':
          var annotation = resolveGenericTypeAnnotation(node.typeAnnotation);
          properties = annotation && annotation.properties ? annotation.properties : [];
                                  ^^^^^^^^^^^^^^^^^^^^^^^^

I could send a PR for this fix if you want. But I'm not familiar with the whole codebase to know if it would break somewhere else.

bug help wanted

Most helpful comment

Hi, as I'm having the same issue (and this is already resolved) I was wondering when the next release is planned?

All 3 comments

Please do send a PR if you're also able to include a failing test :-)

Fixed by #1018 and test added in #1045

Hi, as I'm having the same issue (and this is already resolved) I was wondering when the next release is planned?

Was this page helpful?
0 / 5 - 0 ratings