【发布时间】:2019-08-22 15:04:50
【问题描述】:
我正在制作一个简单的 React 购物清单,您可以在其中添加/删除列表中的项目 (pen here)。到目前为止它工作得很好,除非你在列表中添加一个重复的条目并尝试删除它,它会变得混乱(它使用值作为键,所以大概这就是原因)。为了解决这个问题,我想在添加项目时检查该值是否已存在于列表数组中,并阻止它被添加。我尝试通过将 if (this.state.newItem.length > 0){ 更改为 if (this.state.newItem.length > 0 && this.state.items.includes(this.state.newItem) == false){ (第 18 行)在 handleAddNew 函数中添加另一个检查,但这似乎不起作用。关于我应该如何做这件事的任何想法?
【问题讨论】:
-
请在此处发布您的代码,而不是在外部链接后面。
-
尝试使用 some() ,它会起作用 array.some(function(o){return o["key1"] === "value2";}) 如果找到对,则为真,否则为假。
-
if (this.state.newItem.length && !this.state.items.includes(this.state.newItem))你可以用这个 -
感谢@NarendraChouhan,这也与下面的 Matt Way 的回答一样有效。我更喜欢这个答案,因为当您单击“添加项目”时它不会删除文本输入条目。
-
我很高兴@Godge 你能把答案标记为正确吗,如果你觉得我的答案对你有用,我已经在下面发布了代码
标签: javascript arrays reactjs list arraylist