简体   繁体   English

使用typescript反应,观察者无状态组件

[英]React, observer stateless component with typescript

Im having some problems using React with TypeScript and now Im stuck with making a stateless component an observer. 我在使用React和TypeScript时遇到了一些问题,现在我坚持将无状态组件作为观察者。 Im using MobX btw. 我使用MobX btw。

StatelessComponent: StatelessComponent:

 const TaskItem: React.SFC<{task: Task, deleteTask: (e:any) => void}> = (props) => ( <li onClick={ props.deleteTask }>{ props.task.name }</li> ); 

Code below gives type missmatch assigning ClassicComponent to StatelessComponent and im getting nowhere solving it. 下面的代码给出了类型missmatch将ClassicComponent分配给StatelessComponent并且我无法解决它。

Error: [ts] Type 'ClassicComponentClass<{ task: Task; 错误:[ts]输入'ClassicComponentClass <{task:Task; deleteTask: (e: any) => void; deleteTask:(e:any)=> void; }>' is not assignable to type 'StatelessComponent<{ task: Task; '>'不能赋值为'StatelessComponent <{task:Task; deleteTask: (e: any) => void; deleteTask:(e:any)=> void; }>'. }>”。

 const TaskItem: React.SFC<{task: Task, deleteTask: (e:any) => void}> = observer((props) => ( <li onClick={ props.deleteTask }>{ props.task.name }</li> )); 

How do I make a stateless component an observer? 如何使无状态组件成为观察者? And is there a "prettier" way to write this? 有没有“更漂亮”的方式来写这个?

Looks like this works: 看起来像这样:

 const App = observer((props: {test: string}) => <div>{props.test}</div> ); ReactDOM.render(<App test="sdsdfsddddddddddddddddddf" /> ,document.getElementById('root')); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM