Skip to content

Commit 30672e6

Browse files
committed
Fix no-find-dom-node detection
1 parent 5d10a5f commit 30672e6

File tree

2 files changed

+24
-16
lines changed

2 files changed

+24
-16
lines changed

lib/rules/no-find-dom-node.js

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,20 @@ module.exports = function(context) {
1818

1919
CallExpression: function(node) {
2020
var callee = node.callee;
21-
if (
22-
callee.type !== 'MemberExpression' || (
23-
callee.object.callee && callee.object.callee.name !== 'findDOMNode' &&
24-
callee.property.name !== 'findDOMNode'
25-
)
26-
) {
21+
22+
var isfindDOMNode =
23+
(callee.object && callee.object.callee && callee.object.callee.name === 'findDOMNode') ||
24+
(callee.property && callee.property.name === 'findDOMNode')
25+
;
26+
27+
if (!isfindDOMNode) {
2728
return;
2829
}
29-
var ancestors = context.getAncestors(callee);
30-
for (var i = 0, j = ancestors.length; i < j; i++) {
31-
if (ancestors[i].type === 'Property' || ancestors[i].type === 'MethodDefinition') {
32-
context.report({
33-
node: callee,
34-
message: 'Do not use findDOMNode'
35-
});
36-
break;
37-
}
38-
}
30+
31+
context.report({
32+
node: callee,
33+
message: 'Do not use findDOMNode'
34+
});
3935
}
4036
};
4137

tests/lib/rules/no-find-dom-node.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,18 @@ ruleTester.run('no-find-dom-node', rule, {
5252
'});'
5353
].join('\n'),
5454
parserOptions: parserOptions
55+
}, {
56+
code: [
57+
'var Hello = React.createClass({',
58+
' componentDidMount: function() {',
59+
' React.someFunc(this);',
60+
' },',
61+
' render: function() {',
62+
' return <div>Hello</div>;',
63+
' }',
64+
'});'
65+
].join('\n'),
66+
parserOptions: parserOptions
5567
}],
5668

5769
invalid: [{

0 commit comments

Comments
 (0)