Tabs的TabPane子组件不支持通过属性传入Component,官方示例的TabPane内容也都只有简单的文本。如果需要在TabPane的内容中动态传入组件,可以利用jsx特性、采用封装高阶组件的方法实现,方法如下:
1、高阶组件定义
class ToTabContent extends React.Component{
constructor(props){
super(props)
}
render(){
//通过传入的name属性动态得到自己需要注入的组件,MyComponent首字母要大写
const MyComponent = pages[this.props.name]
return <MyComponent {...this.props} />
}
}
2、state定义
this.state = {
panes : [{
key: 'pageA',
title: '页面A',
name: 'pageA'
},{
key: 'pageB',
title: '页面B',
name: 'pageB'
}]
}
3、根据state定义的内容渲染TabPane,TabPane内容为state中指定名字的组件
{ this.state.panes.map( pane =>
<TabPane tab={ pane.title } key={ pane.key }>
<ToTabContent name={pane.name} />
</TabPane>
)}
来源:https://www.cnblogs.com/wurijie/p/12579268.html