【发布时间】:2023-02-16 19:02:50
【问题描述】:
我在将值从 form 推送到我在屏幕上映射的数组时遇到了一些问题。
const ForumTopic = [
{
title: "First Post",
messages: "test",
author: "Dagger",
count: 1,
date: "02/16",
},
];
const [topic, setTopic] = useState(ForumTopic);
将 ForumTopic 存储在状态中,以便我可以在单击下面的提交按钮后添加条目并显示在屏幕上。
const addTopic = (e) => {
e.preventDefault();
setTopic([...topic, e.target.value]);
};
<form onSubmit={addTopic}>
Create a topic title
<label htmlFor="title">
<input id="title"></input>
</label>
Write your message
<label htmlFor="message">
<textarea id="message"></textarea>
</label>
<label htmlFor="author">
<input id="author" defaultValue="Dagger" hidden></input>
</label>
<label htmlFor="count">
<input id="count" defaultValue="1" hidden></input>
</label>
<label htmlFor="date">
<input id="date" defaultValue="02/16/2023" hidden></input>
</label>
<button type="submit">
Post New Message
</button>
</form>
那是我的代码和表格。该代码旨在推送表单中每个标签的值,以在 topic 数组中创建一个新对象。我希望所有内容都存储在一个新对象中,每个标签的 id 都与每个对象的名称(标题、作者、日期等)相匹配,但由于某种原因,我得到的都是未定义的错误。
【问题讨论】:
-
onSubmit={() => addTopic(e)} .. 你能试试这个吗?
标签: reactjs