diff --git a/lib/util/makeNoMethodSetStateRule.js b/lib/util/makeNoMethodSetStateRule.js index dfa02e23ab..3a46b5e93b 100644 --- a/lib/util/makeNoMethodSetStateRule.js +++ b/lib/util/makeNoMethodSetStateRule.js @@ -76,7 +76,7 @@ function makeNoMethodSetStateRule(methodName, shouldCheckUnsafeCb) { depth++; } if ( - (ancestor.type !== 'Property' && ancestor.type !== 'MethodDefinition') || + (ancestor.type !== 'Property' && ancestor.type !== 'MethodDefinition' && ancestor.type !== 'ClassProperty') || !nameMatches(ancestor.key.name) || (mode !== 'disallow-in-func' && depth > 1) ) { diff --git a/tests/lib/rules/no-did-mount-set-state.js b/tests/lib/rules/no-did-mount-set-state.js index ac1b03ec9c..7c876efc0a 100644 --- a/tests/lib/rules/no-did-mount-set-state.js +++ b/tests/lib/rules/no-did-mount-set-state.js @@ -107,6 +107,20 @@ ruleTester.run('no-did-mount-set-state', rule, { errors: [{ message: 'Do not use setState in componentDidMount' }] + }, { + code: ` + class Hello extends React.Component { + componentDidMount = () => { + this.setState({ + data: data + }); + } + } + `, + parser: 'babel-eslint', + errors: [{ + message: 'Do not use setState in componentDidMount' + }] }, { code: ` var Hello = createReactClass({ diff --git a/tests/lib/rules/no-did-update-set-state.js b/tests/lib/rules/no-did-update-set-state.js index d446b6556f..2bd90db3a0 100644 --- a/tests/lib/rules/no-did-update-set-state.js +++ b/tests/lib/rules/no-did-update-set-state.js @@ -107,6 +107,20 @@ ruleTester.run('no-did-update-set-state', rule, { errors: [{ message: 'Do not use setState in componentDidUpdate' }] + }, { + code: ` + class Hello extends React.Component { + componentDidUpdate = () => { + this.setState({ + data: data + }); + } + } + `, + parser: 'babel-eslint', + errors: [{ + message: 'Do not use setState in componentDidUpdate' + }] }, { code: ` var Hello = createReactClass({