React组件 -- Input封装

众所周知,antd的Input组件只有在被包裹在Form.Item中的时候才能进行校验;但是在很多情况下,需要对Input进行动态操作,这时需要对Input进行封装以获取更多操作权。

下面是对Input组件的一个封装,实现了原antd的Input组件valid状态展示的功能:

jsx 复制代码
const IInput = props => {
  let error = !props?.value;
  if (!props?.isChanged) {
    error = false;
  }
  return (
    <div>
      <Input
        styles={{
          input: {
            background: `${error ? '#fff' : 'auto'}`,
            borderColor: `${error ? '#ff4d4f' : 'auto'}`,
          },
        }}
        className={`${error ? 'input-status-error' : ''}`}
        {...props}
      ></Input>
      <div
        className={`ant-form-item-explain ${
          error ? 'ant-form-item-with-help' : 'ant-form-item-explain-connected'
        }`}
      >
        <div className="ant-form-item-explain-error">Please enter</div>
      </div>
    </div>
  );
};

封装好的组件在没有编辑之前不会进行value的合法性校验(由isChanged控制)

一旦编辑过,如果发现value是空则error的值就会变成true,此时会将提示信息和样式显示出来!

相关推荐
航飞光电市场经理7 分钟前
人员定位系统“全栈自研”技术解析:从射频前端到定位引擎的架构拆解
前端·架构
Apifox10 分钟前
Apifox 9 月更新|CLI 能力升级、GitLab 私有化部署接入与产品体验优化
前端·后端·测试
deli00711 分钟前
随机乱跳为什么能画出完美三角形:混沌游戏分形实验室
前端
Gizzap_Tech18 分钟前
国内官网增加英文版:URL、语言切换与 hreflang 怎么配置?
前端
剪刀石头布啊26 分钟前
泛洪DFS、BFS
前端
qetfw26 分钟前
Windows Server AD CS:根 CA、Web 证书模板与域内自动注册
前端·windows·windows-server
剪刀石头布啊26 分钟前
为什么React组件很少前缀,而vue的不少组件都有前缀
前端
剪刀石头布啊32 分钟前
gird网格布局
前端
啃火龙果的兔子34 分钟前
Google Chrome(谷歌浏览器)常用快捷键
前端·chrome
剪刀石头布啊36 分钟前
js真的是单线程实现异步并发么?
前端