如何根据请求的响应状态返回验证规则(reactjs/antdesign)
我想知道如何根据请求的响应返回验证规则。
我有一个输入,当用户完成写作时,如果尝试输入的用户已经存在,则可以执行获取的位置,就像是执行输入的自动搜索一样。但是现在我要做的是,根据请求的状态返回验证规则,
您知道我如何做这样的事情吗?
目前,我在警报消息中将其返回,但我想将其返回,因为我提到它们
<FormItem {...formItemLayout} style={{ marginBottom: "-44px" }}>
{getFieldDecorator(`userName`, {
initialValue: selectedData_.userName
? selectedData_.userName
: "",
rules: [
{
pattern: new RegExp("^[a-z0-9_.-]+$"),
message: <div className="alertsUserName"><IntlMessages id="message.link.pattern" /></div>
},
{
required: true,
message: <div className="alertsUserName"><IntlMessages id="error.required" /></div>
},
{
// Rule that returns the RES of the API
message: <div className="alertsUserName"><IntlMessages id="message.link400" /></div>
}
]
})(<Input name="userName" className="inputLink" onFocus={this.onFocus} onBlur={this.onBlur} onKeyDown={(e) => { e.persist(); this.update(e); }}
placeholder={intl.formatMessage({
id: `maintenace.link.suffixIntructions`
})} />)}
</FormItem>
//Method
debounce = (func, delay) => {
let debounceTimer;
return function () {
const context = this;
const args = arguments;
clearTimeout(debounceTimer);
debounceTimer = setTimeout(() => func.apply(context, args), delay);
};
};
update = this.debounce(async function (e) {
console.log(e.target.value);
console.log(this.state.value);
try {
const response = await axios.get(`/dynamicLink/${e.target.value}/findAffiliate`);
console.log(response);
const selectData_ = this.state.form
// this.setState({ userName: e.target.value });
this.setState({ ...selectData_, userName: e.target.value })
console.log(this.state.value);
} catch (error) {
if (error.response.status === 400) {
messages.error(this.props.intl.formatMessage({ id: "message.link400" }));
}
if (error.response.status === 404) {
messages.error(this.props.intl.formatMessage({ id: "message.userNull" }));
}
}
}, 3000);
I would like to know how I can return a validation rule depending on the response of a request.
I have an input which, when the user finishes writing, performs a GET where it obtains if the user who is trying to enter already exists, it is like an automatic search that is performing the input. But now what I want to do is that depending on the status of the request return the validation rule
Do you know how I could do something like that?
Currently I return it in an alert message but I would like to return it as I am mentioning them
<FormItem {...formItemLayout} style={{ marginBottom: "-44px" }}>
{getFieldDecorator(`userName`, {
initialValue: selectedData_.userName
? selectedData_.userName
: "",
rules: [
{
pattern: new RegExp("^[a-z0-9_.-]+quot;),
message: <div className="alertsUserName"><IntlMessages id="message.link.pattern" /></div>
},
{
required: true,
message: <div className="alertsUserName"><IntlMessages id="error.required" /></div>
},
{
// Rule that returns the RES of the API
message: <div className="alertsUserName"><IntlMessages id="message.link400" /></div>
}
]
})(<Input name="userName" className="inputLink" onFocus={this.onFocus} onBlur={this.onBlur} onKeyDown={(e) => { e.persist(); this.update(e); }}
placeholder={intl.formatMessage({
id: `maintenace.link.suffixIntructions`
})} />)}
</FormItem>
//Method
debounce = (func, delay) => {
let debounceTimer;
return function () {
const context = this;
const args = arguments;
clearTimeout(debounceTimer);
debounceTimer = setTimeout(() => func.apply(context, args), delay);
};
};
update = this.debounce(async function (e) {
console.log(e.target.value);
console.log(this.state.value);
try {
const response = await axios.get(`/dynamicLink/${e.target.value}/findAffiliate`);
console.log(response);
const selectData_ = this.state.form
// this.setState({ userName: e.target.value });
this.setState({ ...selectData_, userName: e.target.value })
console.log(this.state.value);
} catch (error) {
if (error.response.status === 400) {
messages.error(this.props.intl.formatMessage({ id: "message.link400" }));
}
if (error.response.status === 404) {
messages.error(this.props.intl.formatMessage({ id: "message.userNull" }));
}
}
}, 3000);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论