【发布时间】:2021-08-09 10:41:57
【问题描述】:
我正在创建一个 React 应用程序。我想在顶部显示最后添加的注释。
Notes 是一个对象数组。如您所见,我尝试过 notes.reverse() 但不知何故它不起作用。元素仍在底部添加。
<div>
{notes.reverse().map((note)=> (
<NotesCard
note={note}
key={note.id}
setInputText={setInputText}
setInputTitle={setInputTitle}
setNotes={setNotes}
notes={notes}
setId={setId}
/>
))
}
</div>
我正在使用在单击提交按钮时触发的 submitHandler 函数。函数如下所示:
const submitHandler = () => {
if (inputText || inputTitle) {
setNotes([
...notes,
{title:inputTitle , text: inputText, id: Math.random()*1000}
]);
} else {
alert("Notes are Empty. Type something in textarea.");
}
setInputText("");
setInputTitle("");
setId("");
};
我还使用了一个 updateHandler 函数来更新现有的笔记。单击更新按钮时触发。每当我在这里使用 splice() 或 unshift() 设置顶部 chrome 上的更新注释时,都会停止响应并且一切都挂起。
const updateHandler = () => {
for (var i=0; i<notes.length; i++) {
if (id===notes[i].id) {
if (inputText || inputTitle) {
notes.push(
{title:inputTitle , text: inputText, id: Math.random()*1000}
);
setNotes(notes.filter((el) => el.id !== id));
} else {
alert("Notes are Empty. Type something in textarea.");
}
}
};
setInputText("");
setInputTitle("");
setId("");
}
【问题讨论】:
-
您是否也可以在将新对象添加到 notes 数组的位置添加代码。
-
你能给我看看你的笔记是什么样子的吗?
-
你能告诉我们你是如何在
notes中添加新元素的吗 -
@jaybhatt 现在刚刚添加了功能检查。
-
您的
id不应该是随机的,您能否将它的价值作为本质上递增的东西,也许是notes.length + 1或其他东西。拥有一个随机的id与滥用key一样好。
标签: javascript arrays reactjs react-native