react基于antd二次封装spin组件

目录

react基于antd二次封装spin组件

组件

js 复制代码
import { Spin } from 'antd';
import propTypes from "prop-types";
import React from 'react';
import styleId from "styled-components";
// 使用 父div必须加 position:'relative'
const SpinCom = (props) => {
  // console.log('props',props);
    return (
        <SpinComWrap>
          <Spin className='spin' tip={props.tip} spinning={props.spinning} />
        </SpinComWrap>
    )
}
// props
SpinCom.propTypes = {
  tip: propTypes.string,
  spinning: propTypes.bool.isRequired,
  size: propTypes.string,
};
SpinCom.defaultProps = {
  tip: 'Loading...', // 默认值
  spinning: false,
  size: 'default'
};
const SpinComWrap = styleId.div`
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  .spin {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
  }
`
export default SpinCom

使用组件

js 复制代码
import { Button } from 'antd';
import React, { useState } from 'react';
import SpinCom from "./SpinCom";
export default function App(props) {
  const [show,setshow] = useState(false)
  const showspain = () => {
    setshow(!show)
  }
    return (
        <div className='content' style={{width:'200px',height: '200px',background: '#ccc',position:'relative'}}>
          <SpinCom spinning={show}></SpinCom>
          app -{show ? 1: 0}
          <Button type="primary" onClick={showspain}>Button</Button>
        </div>
    )
}

效果

相关推荐
GISer_Jing3 天前
滴滴二面(准备二)
前端·javascript·vue·reactjs
三思而后行,慎承诺8 天前
requestIdleCallback 和 MessageChannel
javascript·reactjs
Flyfreelylss10 天前
前端实现解析【导入】数据后调用批量处理接口
前端·reactjs
全球网站建设1 个月前
从结构到交互:HTML5进阶开发全解析——语义化标签、Canvas绘图与表单设计实战
javascript·前端框架·php·reactjs·css3·html5
光影少年2 个月前
react18更新哪些东西
前端·学习·reactjs
cxr8282 个月前
Vercel AI SDK 3.0 学习入门指南
前端·人工智能·学习·react.js·typescript·npm·reactjs
光影少年2 个月前
react17更新哪些新特性
前端·reactjs
解道Jdon2 个月前
AI IDE冲击下JetBrains作死,IDEA埋订阅陷阱
javascript·reactjs
止观止2 个月前
React虚拟DOM的进化之路
前端·react.js·前端框架·reactjs·react
解道Jdon3 个月前
最新苹果液体玻璃Liquid Glass效果CSS实现
javascript·reactjs