gpt4 book ai didi

javascript - redux-form,如果使用返回函数,验证会中断

转载 作者:行者123 更新时间:2023-11-30 20:40:48 25 4
gpt4 key购买 nike

我正在使用 redux 表单并想要自定义验证消息。

我在这里使用了他们的示例验证项目: https://codesandbox.io/s/PNQYw1kVy

按原样,它按预期工作。如果我从

更改必填字段的验证函数

const required = value => value ?未定义:“必需”

const required = message => value => value ?未定义:消息|| '必需'

并更改名称和电子邮件的验证定义

validate={[ required ]}

validate={[ required('Message') ]}validate={[ required(null) ]}

然后它不处理验证。

为什么会这样?据我了解,如果我们有 const myFunc = val => valconst myFunc2 = () => val => val 那么 [myFunc, myFunc2()] 将产生一个由 2 个功能相同的函数组成的数组。

最佳答案

不要使用包装在另一个函数中的验证函数,每次渲染表单时都会构造一个新函数,这将导致字段重新渲染(因为 this.props.validate !== nextProps.validate)。(检查这个 issue on github )

您可以使用具体定义的参数化验证规则实例:

const required = value => value ? undefined : 'Required';
const requiredMessage = required('Message');

<Field
name="username"
type="text"
component={renderField}
label="Username"
validate={requiredMessage}
/>

此外,这也是为什么在表单组件中定义的验证函数不起作用的原因。

const FormComponent = (props) => {
const {handleSubmit, submitting} = props;
const required = value => value ? undefined : 'Required'; //this will not work!!!

return <form onSubmit={handleSubmit}>
<Field
name='username'
type='text'
component={renderField}
label='Username'
validate={required}
/>
<div>
<button type="submit" disabled={submitting}>Submit</button>
</div>
</form>;
};

关于javascript - redux-form,如果使用返回函数,验证会中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49293061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com