Comments (5)
I have a similar issue. When I write the following (valid) code:
const ObservedMyComponent = observer(MyComponent);
createElement(ObservedMyComponent, { key: "12" });
I get the following error on the second line:
error TS2345: Argument of type 'ComponentClass<any> | void' is not assignable to parameter of type 'ComponentClass<any> | StatelessComponent<any>'.
Type 'void' is not assignable to type 'ComponentClass<any> | StatelessComponent<any>'.
Type 'void' is not assignable to type 'StatelessComponent<any>'.
After some juggling around, I've figured out that the problem is in the following line in your package typings:
export function observer<TFunction extends React.ComponentClass<any>>(target: TFunction): TFunction | void; // decorator signature
If you remove the void
case, everything works as expected.
Typescript 1.7.5, React 0.14
from mobx-react.
I tried to reproduce this issue (see the above commit), however the above error didn't occur.
Does the test https://github.com/mweststrate/mobservable-react/blob/master/test/ts/compile-ts.tsx properly reproduce the issue? Feel free to amend.
Test can simply be run by cloning the repo and running tsc -p test/ts
from mobx-react.
Maybe a different version of react.d.ts?
from mobx-react.
Didn't have a time to double check it yet, but your tests are missing the case where I got an error:
class T7 extends Component<{ pizza: number}, {}> {
render() {
return <div>{this.props.pizza}</div>;
}
}
React.createElement(observer(T7), { pizza: "4 seasons" });
from mobx-react.
Tnx. That was the culprit indeed! Fixed and released as 2.1.5
from mobx-react.
Related Issues (20)
- upgrade mobx-react version from 6.2.2 to 6.2.3,There is an error HOT 7
- observer component re-renders even though observed value doesn't change HOT 4
- build 6.2.4 is broken (missing files) HOT 1
- [mobx-react 6.2.4] Unable to resolve path to module 'mobx-react' HOT 2
- Why not copy static propertities in prototype ? HOT 1
- Attempted import error: 'observerBatchingOptOut' is not exported from 'mobx-react-lite'. HOT 9
- Uncaught TypeError: Cannot add property Symbol(isMobXReactObserver), object is not extensible HOT 2
- New version is breaking previous versions (Error: mobx-react-lite@3 requires mobx at least version 6 to be available) HOT 5
- Problem with version 6.3.0 and mobx v5 HOT 11
- Unable to resolve module `./assertEnvironment` HOT 19
- Document `enableStaticRendering` HOT 5
- The problem of `useRef` to keep the store instance HOT 2
- What is the best way to deal with large and dynamic FlatLists? HOT 3
- mobx-react.js.org dead? HOT 1
- deepEqual condition for re-rendering? HOT 9
- observer does not re-render components in React Native HOT 10
- observer doesn't re-render functional components HOT 2
- Not working in nextjs using mobx:6.0.1 HOT 2
- Incosistencies in mobx-react dependency versions. HOT 1
- Migration guide for mobx6 + mobx-react7? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mobx-react.