我正在使用Formik做反应,在使用验证时我遇到方括号问题,以便在屏幕上显示错误。我尝试使用"\["
,但它没有用。使用“text”或“text-i”甚至“text(i)”之类的东西都可以正常工作,但我只有方括号才有问题。
isDataValid = (values: KeyValue<any>) => {
let errors: FormikErrors<KeyValue<any>> = {};
(for let i=0; i<... etc) {
if (!values["text[i]"]) {
errors["text[i]"] = "Insert title";
}
}
return errors;
有小费吗?
不使用i
似乎是个问题。为了在这种情况下在i
循环中使用for
,您可以使用模板文字或+
。
使用模板文字:
(for let i=0; i<... etc) {
if (!values[`text[${i}]`]) {
errors[`text[${i}]`] = "Insert title";
}
}
使用+
:
(for let i=0; i<... etc) {
if (!values["text[" + i + "]"]) {
errors["text[" + i + "]"] = "Insert title";
}
}
请注意,使用模板文字可能会导致兼容性问题,请参阅:https://caniuse.com/#feat=template-literals