Skip to content

setFieldsValue会触发Form.Item的rules #2816

@814351846

Description

@814351846

NutUI React 包名

@nutui/nutui-react

NutUI React 版本号

2.6.14

平台

h5, weapp

重现链接

https://nutui.jd.com/taro/react/2x/#/zh-CN/component/form

重现步骤

import React from 'react'
import Taro from '@tarojs/taro'
import { Form, Input, Radio } from '@nutui/nutui-react-taro'

const Demo5 = () => {
const submitFailed = (error: any) => {
Taro.showToast({ title: JSON.stringify(error), icon: 'error' })
}

const submitSucceed = (values: any) => {
Taro.showToast({ title: JSON.stringify(values), icon: 'success' })
}

const [form] = Form.useForm()
const onMenuChange = (value: string | number | boolean) => {
switch (value) {
case 'male':
form.setFieldsValue({ note: '👨' })
break
case 'female':
form.setFieldsValue({ note: '👩' })
break
default:
}
}
return (
<>
<Form
form={form}
onFinish={(values) => submitSucceed(values)}
onFinishFailed={(values, errors) => submitFailed(errors)}
>
<Form.Item
label="字段A"
name="username"
rules={[{ required: true, message: '请输入字段A' }]}
>

</Form.Item>
<Form.Item label="标注" name="note">

</Form.Item>
<Form.Item label="字段E" name="gender">
<Radio.Group onChange={onMenuChange}>
A
B
</Radio.Group>
</Form.Item>

</>
)
}

export default Demo5

期望的结果是什么?

不应该触发校验

实际的结果是什么?

触发了校验

环境信息

No response

其他补充信息

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions