我正在尝试制作一个简单的提交表单。我相信我的邮件格式的 json 是正确的。使用邮件格式的 json,我试图检查已提交的电子邮件是否有效。但是由于某种原因,react 似乎没有识别 match() 方法。我收到一条错误消息,指出“无法读取未定义的属性‘匹配’。”我对修复的猜测涉及异步编程,但我不够熟练,无法提出修复。我正在使用 React 钩子和状态。
function Form({submit, setSubmit, text, setText}) {
let emailArray = [];
//handlers. Need for submit button and input for text
const setTextHandler = (e) => {
// console.log(e.target.value)
setText(e.target.value);
};
const setSubmitHandler = (e) => {
let mailformat = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
e.preventDefault();
setSubmit(text);
console.log(text)
if(text.value.match(mailformat)) {
console.log("it works")
emailArray.push(text);
return true
} else if (!text.value.match(mailformat)) {
console.log("FAIL");
return false
}
console.log(emailArray[0])
console.log(emailArray)
setText("");
}
答案 0 :(得分:0)
根据您的最后一行和您的 setTextHandler,两个 setText 函数都将文本值设置为字符串,因此只需更改此行即可:
if(text.match(mailformat)) {
// your code
} else if (!text.match(mailformat)) {
// your code
}