为啥每条推文都被删除

Posted

技术标签:

【中文标题】为啥每条推文都被删除【英文标题】:Why every tweet is being deleted为什么每条推文都被删除 【发布时间】:2022-01-02 08:27:25 【问题描述】:

所以我使用 React 并编写了一个带有提交按钮的文本框的小代码,当输入并提交某些内容时,它会创建一条带有我输入的文本和一些预制元素的推文你在这里看到: [1]:https://i.stack.imgur.com/pvfSf.png 带有 Like 和 Delete 按钮的随机字母是我每次提交的。

我感到困惑的是,为什么当我使用此代码时,每条推文都会被删除:

const deleteTweet = () =>
    setTweets(tweets.filter(tweet => tweet !== tweet))

但是当我使用这段代码时,只有我点击删除的一条特定推文被删除:

const deleteTweet = () =>
    setTweets(tweets.filter(t => t !== tweet))

!== 之后的“tweet”是我要传递的道具。

【问题讨论】:

tweet !== tweet 中,tweet 都是完全相同的变量。没有不等于自身的值(NaN 除外),因此tweet !== tweet 始终为false 【参考方案1】:

您在地图上用作参数的推文和用作道具的推文之间存在冲突,javascript 的作用域采用最新的变量,即地图的推文。

因此,当您将推文放在地图功能上时,它会覆盖道具推文。

你可以看看闭包:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures

【讨论】:

以上是关于为啥每条推文都被删除的主要内容,如果未能解决你的问题,请参考以下文章

t-SNE 高维数据可视化

为啥这些推文无法使用 Tweetinvi 发布?

如何将每条推文分成不同的引导卡

每条推文中不重复的单词总数

twitter4j.Status 是不是在每条推文上返回地理位置

如何获取 couchdb 中键的值