zoukankan      html  css  js  c++  java
  • antd Tabs组件动态加载组件内容

    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>
    )}
  • 相关阅读:
    Probability theory
    python Memo
    numpy 札记
    linux LVM 逻辑卷
    关于TF-IDF的一些见解
    Python之list、dict、np等常用数值运算
    Python之matplotlib绘图
    Python之打开网页
    Python之获取地址经纬度
    两台电脑直接共享文件
  • 原文地址:https://www.cnblogs.com/wurijie/p/12579268.html
Copyright © 2011-2022 走看看