我在将表单中的值推送到我在屏幕上映射的数组时遇到了一些问题。
const ForumTopic = [
{
title: "第一篇帖子",
messages: "测试",
author: "Dagger",
count: 1,
date: "02/16",
},
];
const [topic, setTopic] = useState(ForumTopic);
将ForumTopic存储在状态中,以便在点击下面的提交按钮后添加条目并在屏幕上显示。
const addTopic = (e) => {
e.preventDefault();
setTopic([...topic, e.target.value]);
};
这是我的代码和表单。代码的目的是将表单中每个标签的值推送到topic数组中创建一个新对象。我希望将所有内容存储在一个新对象中,每个标签的id与每个对象的名称(标题、作者、日期等)匹配,但由于某种原因,我只得到了未定义的错误。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
问题在于你的addTopic函数中:
e.target.value始终为undefined
要访问数据,你需要这样做:
const addTopic = (e) => { e.preventDefault() const myData = { title: e.target.title.value, message: e.target.message.value } setTopic(prev => [...prev, myData]) }