antd form通过字段控制另字段是否为必填
问题
最近遇到一个小的需求,当用户讲一个Switch的按钮选择为yes的时候,对应的一个InputNumber组件就要为必填,同时还要检验InputNumber是否填写了数据,如果Switch为No,则对应的InputNumber组件要禁用。
解决方案
创建一个isOpenInputNumber的state来控制InputNumber是否禁用,这个isOpenInputNumber的值由Switch的值来决定
当我们点击Switch的值时,就去修改isOpenInputNumber的状态,这样InputNumber组件就能根据Switch的值变化而变化。
当Switch的值改变时,我们就去校验对应的InputNumber,这样也能动态校验了。
具体实现的代码
-
const App = () => {
-
//通过是否开启Switch来控制是否禁用InputNumber
-
const [openInputNumber, setOpenInputNumber] = useState(false);
-
const [form] = Form.useForm();
-
-
//只要Switch变换就去校验对应的字段
-
const handleSwitchClick = () => {
-
form.validateFields(["InputNumber"]);
-
};
-
-
return (
-
<Form form={form}>
-
<Form.Item label="isOpenInputNumber" name="openInputNumber">
-
<Switch
-
valuePropName={true}
-
onChange={setOpenInputNumber}
-
onClick={handleSwitchClick}
-
/>
-
</Form.Item>
-
-
<Form.Item
-
label="InputNumber"
-
name="InputNumber"
-
rules={[
-
{
-
//是否必填取决于是否开启Switch
-
required: openInputNumber,
-
message: "This field is required"
-
}
-
]}
-
>
-
<InputNumber disabled={!openInputNumber} />
-
</Form.Item>
-
</Form>
-
);
-
};
-
-
export default App;
最终效果图如下
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfhegb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01