Merge pull request #21349 from asgerf/mobx-wrapper

Support React components wrapped by 'mobx-react'
This commit is contained in:
Asger F
2026-02-25 09:24:45 +01:00
committed by GitHub
3 changed files with 11 additions and 1 deletions

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Added support for React components wrapped by `observer` from `mobx-react` and `mobx-react-lite`.

View File

@@ -832,6 +832,8 @@ private DataFlow::SourceNode higherOrderComponentBuilder() {
or
result = DataFlow::moduleMember("recompose", _).getACall()
or
result = DataFlow::moduleMember(["mobx-react", "mobx-react-lite"], "observer")
or
result = reactRouterDom().getAPropertyRead("withRouter")
or
exists(FunctionCompositionCall compose |

View File

@@ -5,6 +5,8 @@ import styled from 'styled-components';
import unknownFunction from 'somewhere';
import { hot } from 'react-hot-loader';
import { withState } from 'recompose';
import { observer as observer1 } from 'mobx-react';
import { observer as observer2 } from 'mobx-react-lite';
import { MyComponent } from './exportedComponent';
@@ -25,4 +27,6 @@ const ConnectedComponent = compose(withConnect, unknownFunction)(StyledComponent
const ConnectedComponent2 = withState('counter', 'setCounter', 0)(ConnectedComponent);
export default hot(module)(memo(forwardRef(ConnectedComponent2)));
const ConnectedComponent3 = observer1(observer2(ConnectedComponent2));
export default hot(module)(memo(forwardRef(ConnectedComponent3)));