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,此时会将提示信息和样式显示出来!

相关推荐
橙露几秒前
各类 Shell 优劣势深度解析与实战选型指南
前端·chrome
广州华水科技3 分钟前
单北斗GNSS在变形监测中的应用与发展探讨
前端
雨季6665 分钟前
构建 OpenHarmony 简易分账计算器:用除法解决日常公平难题
javascript·flutter·ui·自动化·dart
克里斯蒂亚诺更新8 分钟前
vue2 单文件组件加入浏览器的title和ico的方法
前端·javascript·html
csdn_aspnet14 分钟前
JavaScript常用算法深度解析:从浏览器到Node.js的实战
javascript·node.js
2401_8920005217 分钟前
Flutter for OpenHarmony 猫咪管家App实战 - 疫苗记录实现
开发语言·javascript·flutter
芝芝葡萄23 分钟前
VsCode中使用Codex
前端·ide·vscode·编辑器·ai编程
wangmengxxw25 分钟前
SpringAI-mcp-入门案例
java·服务器·前端·大模型·springai·mcp
觉醒大王28 分钟前
简单说说参考文献引用
java·前端·数据库·学习·自然语言处理·学习方法·迁移学习
weixin_4492900130 分钟前
EverMemOS 访问外部(deepinfra)API接口
java·服务器·前端