这个问题对于 TypeScript/React 黑客来说应该是一个简单的谜题。
我有一个将类对象传递给子组件的 React 组件。在子组件中,我在类对象上调用一个方法。这两个组件如下所示:
class ParentComponent extends React.Component<{}, Foo> {
constructor(props: any) {
super(props);
this.state = new Foo();
}
render() {
return (<ChildComponent {...this.state} />);
}
}
class ChildComponent extends React.Component<Foo, {}> {
render() {
this.props.fooMethod(); // TypeError or not? fooMethod is not a function?
return (<div/>);
}
}
此外,我有两种不同的Foo. 其中一个有效,而另一个在子组件中引发 TypeError。 你能解释为什么只有一个 Foo 实现有效吗?
第一个 Foo 实现:
class Foo {
constructor() {
this.fooMethod = function(): void {};
}
fooMethod: () => void;
}
第二个 Foo 实现:
class Foo {
fooMethod(): void {};
}
慕丝7291255
相关分类