Ich habe einige Probleme beim Übertragen von Werten aus einem Formular in ein Array, das ich auf dem Bildschirm zuordne.
const ForumTopic = [ { title: "第一篇帖子", messages: "测试", author: "Dagger", count: 1, date: "02/16", }, ]; const [topic, setTopic] = useState(ForumTopic);
Speichern Sie das ForumTopic im Status, sodass Einträge hinzugefügt und auf dem Bildschirm angezeigt werden, nachdem Sie unten auf die Schaltfläche „Senden“ geklickt haben.
const addTopic = (e) => { e.preventDefault(); setTopic([...topic, e.target.value]); }; <form onSubmit={addTopic}> 创建主题标题 <label htmlFor="title"> <input id="title"></input> </label> 编写您的消息 <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"> 发布新消息 </button> </form>
Das ist mein Code und Formular. Der Zweck des Codes besteht darin, den Wert jedes Tags im Formular auf topic
数组中创建一个新对象。我希望将所有内容存储在一个新对象中,每个标签的id
zu verschieben, damit er mit dem Namen jedes Objekts (Titel, Autor, Datum usw.) übereinstimmt. Aus irgendeinem Grund erhalte ich jedoch nur eine undefinierte Fehlermeldung.
问题在于你的addTopic函数中:
e.target.value始终为undefined
要访问数据,你需要这样做:
一种简单的方法是这样做。
您需要使用input的onChange获取到您正在获取的值。
示例链接:https://stackblitz.com/edit/react-8r9f8l?file=src%2FApp.js