【React工作记录八十八】React+antDesign封装一个tab组件(类组件) -2

简介: 【React工作记录八十八】React+antDesign封装一个tab组件(类组件)

变化3

数据格式

const tabs = [
      { key: '', value: '全部' },
      { key: '1', value: '已审核' },
      { key: '2', value: '未审核' },
    ];



父组件

<GeYao tabs={tabs} />


子组件

import React, { Component } from 'react';
class GeYao extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      selectTab: props.selectTab || '',
    };
  }
  /**
   * 切换tab
   * @param {Boolean} doNot 是否不做任何事情,如果存在此值,不执行父组件切换方法,仅仅刷新样式
   */
  handleTabClick(key, doNot) {
    console.log(key, 'key');
    this.setState({
      selectTab: key,
    });
  }
  render() {
    const { selectTab } = this.state;
    const { tabs = [], styles, itemStyles } = this.props;
    return (
      <ul
        style={{
          display: 'flex',
          background: '#FFFFFF',
          paddingLeft: '32px',
          width: '100%',
          ...styles,
        }}
      >
        {tabs.map((item, index) => {
          const marginStyle =
            index === 0
              ? {
                  marginLeft: 0,
                }
              : {};
          return (
            <li
              onClick={() => this.handleTabClick(item.key)}
              style={{
                color: item.key === selectTab ? '#1890FF' : '#000000A6',
                borderBottom: item.key === selectTab ? '2px solid #1890FF' : '',
                padding: '0px 1.5% 8px',
                cursor: 'pointer',
                whiteSpace: 'nowrap',
                ...itemStyles,
                ...marginStyle,
              }}
              key={item.key}
            >
              {item.name || item.value || ''}
            </li>
          );
        })}
      </ul>
    );
  }
}
export default GeYao;



运行结果

image.png


图解


image.png

                   

相关文章
|
前端开发 数据格式
【React工作记录八十八】React+antDesign封装一个tab组件(类组件) -1
【React工作记录八十八】React+antDesign封装一个tab组件(类组件)
86 0
|
前端开发 数据格式
【React工作记录八十八】React+antDesign封装一个tab组件(类组件) -3
【React工作记录八十八】React+antDesign封装一个tab组件(类组件)
103 0
|
前端开发 索引
【React工作记录七十九】React+hook+ts+ant design封装一个具有动态表格得页面
【React工作记录七十九】React+hook+ts+ant design封装一个具有动态表格得页面
151 0
|
前端开发 数据格式
#yyds干货盘点 React+antDesign封装一个tab组件(类组件) (3)
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)
99 0
|
前端开发 数据格式
#yyds干货盘点 React+antDesign封装一个tab组件(类组件) (1)
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)
121 0
|
数据格式
#yyds干货盘点 React+antDesign封装一个tab组件(类组件) (2)
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)
131 0
|
前端开发 数据格式
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)(1)
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)
73 0
|
前端开发 数据格式
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)(3)
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)
126 0
|
数据格式
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)(2)
#yyds干货盘点 React+antDesign封装一个tab组件(类组件)
118 0
|
前端开发
【React工作记录六十五】ant design子组件渲染不能及时渲染
【React工作记录六十五】ant design子组件渲染不能及时渲染
140 0