javascript - 做出反应。未处理的拒绝(TypeError):无法读取未定义的属性“值”
问题描述
您好 ,请帮我将表格发送到电子邮件!
未处理的拒绝(TypeError):无法读取 const handleSubmit 上未定义错误的属性“值”
它是源代码:
const Form = () => {
const classes = useStyles();
const [status, setStatus] = useState("Submit");
const handleSubmit = async (e) => {
e.preventDefault();
setStatus("Sending...");
const { name, email, message } = e.target.elements;
let details = {
name: name.value,
email: email.value,
message: message.value,
};
let response = await fetch("http://localhost:5000/contact", {
method: "POST",
headers: {
"Content-Type": "application/json;charset=utf-8",
},
body: JSON.stringify(details),
});
setStatus("Submit");
let result = await response.json();
alert(result.status);
};
解决方案
似乎:姓名、电子邮件和消息是undefined/null
. 我们需要查看您的渲染功能。(也许您忘记将name
属性添加到您的输入中?)
您可以改用表单元素,并创建FormData
:
const elements = new FormData(e.target);
const details = {
name: elements.get("name"),
email: elements.get("email"),
message: elements.get("message"),
};
推荐阅读
- nginx - 如何在 GoogleCloud Compute 引擎中安装 SSL 证书 (DV) 基于 DNS CNAME 的身份验证?
- javascript - JavaScript删除另一个数组中包含空元素的数组
- node.js - Node.js Express Post 请求正文为空
- firebase - 如何使用颤振从 Firebase 实时数据库中检索特定数据?
- java - 如何将值保存到Edittext?
- teradata - 使用 Teradata 中增量表中的 MERGE/INSERT 将非重复项插入主表
- swiftui - SwiftUI井字棋盘
- installation - 安装 Expo-CLI 时出错 .. 甚至尝试过 npm install --unsafe-perm -g expo-cli 但没有奏效
- java - Java 8:AveragingDouble 和映射到对象
- asp.net-mvc - Aspnet API 控制器参数未正确反序列化