为什么在 Reactjs 应用中,'!=' 可以使用,但 '!==' 不行?

6 浏览
0 Comments

为什么在 Reactjs 应用中,'!=' 可以使用,但 '!==' 不行?

已关闭。 该问题需要调试详细信息。它暂时不接受回答。


编辑问题,包括所需行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答问题。

改善这个问题

我会尽可能地简短。基本上我有一个react应用程序,我正在映射一个对象数组,每个对象是表中的一行。在每行末尾,有一个删除按钮,我正在传递一个jsx \'id\'属性(从对象中检索),“id”用于确定删除哪一行。当单击按钮时,我传递以下函数:

const handleDelete = (e) => {
    console.log(e.target.id);
    const passedId = e.target.id;
    let newdata = data.filter((obj) => obj.id != passedId); // != works fine !== returns the same array
    console.log(newdata);
    //axios stuff
}

我想过滤数组,以便不包括带有传递id的对象。在控制台记录的e.target.id就像所预期的那样是一个整数,对象id也是一个整数。那么为什么“!==”不起作用?

admin 更改状态以发布 2023年5月21日
0
0 Comments

问题在于当您执行 event.target.id 时,根据文档,结果是一个字符串,而不是一个整数。因此,当您比较这两个变量时,它们具有不同的数据类型,因此根据 "===" 它们不相等。

因此,在这种情况下,您将必须使用非严格比较来检查值。

https://developer.mozilla.org/en-US/docs/Web/API/Element/id

0
0 Comments

使用!=比较两个变量的值。使用!==比较值和类型。

例如,
"5" == 5true
"5" === 5false

在没有看到你的输入之前,我想象e.target.idobj.id的类型不同。

有关更多信息,请参见这里

0