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

时间:2017-09-29 10:03:40

标签: javascript reactjs observable mobx

我在使用React和TypeScript时遇到了一些问题,现在我坚持将无状态组件作为观察者。我正在使用MobX btw。

StatelessComponent:



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

下面的代码给出了类型missmatch将ClassicComponent分配给StatelessComponent并且我无法解决它。

错误: [TS] 键入&#39; ClassicComponentClass&lt; {task:Task; deleteTask:(e:any)=&gt;无效; }&GT;&#39;不能分配给类型&#39; StatelessComponent&lt; {task:Task; deleteTask:(e:any)=&gt;无效; }&GT;&#39;

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

如何使无状态组件成为观察者?是否有一个更漂亮的&#34;写这个的方法?

1 个答案:

答案 0 :(得分:3)

看起来很有效:

const App = observer((props: {test: string}) => 
    <div>{props.test}</div>
);

ReactDOM.render(<App test="sdsdfsddddddddddddddddddf" />
    ,document.getElementById('root'));