我有一个基类,App(ES6语法);我希望派生类能够指定要呈现的几个子组件 - 具体取决于其状态。例如,
class App {
render() {
return (
<div>{ this.state.c1 }</div>
<div>{ this.state.c2 }</div>
);
}
}
class MyApp extends App {
constructor() {
this.state = {
c1: <Foo/>,
c2: <Bar/>
}
}
}
class Foo extends React.Component {
getTitle() { return 'Foo'; }
}
我还需要有基类App,在子组件上调用方法。例如,this.state.component.getTitle()
但是,this.state.c1
不是ES6类(即不是Foo的实例)。
我不能使用refs,因为基类不会创建<Foo/>
组件。
我无法使用合成,因为App需要多个子组件。
有什么建议吗?
答案 0 :(得分:0)
我认为最合适的方法是反转依赖。
即,将Model类作为属性“注入”每个组件。然后从基类访问该属性。