reactjs - 如何删除之前在 React useEffect() 中创建的实例
问题描述
这是我的 useEffect()。我正在使用 React 和艾伦语音识别制作网站。这个 useEffect() 所做的是,当有人进入该国家/地区时,它会创建一个基本上是一个按钮的 alanBtn。现在的问题是,当用户选择另一个国家/地区时,前一个按钮会停留在页面上,并在其顶部创建一个新按钮. 我想要做的是,每当用户选择一个不同的国家时,它都会破坏前一个按钮实例,然后创建一个新的。
useEffect(() => {
alanbtn({
key: alanKey,
onCommand: ({ command, articles, number }) => {
if (command === "newHeadlines") {
setNewsArticles(articles);
setActiveArticle(-1);
} else if (command === "highlight") {
setActiveArticle((prevValue) => prevValue + 1);
} else if (command === "open") {
const parseNumber =
number.length > 2
? wordsToNumbers(number, { fuzzy: true })
: number;
const article = articles[parseNumber - 1];
if (parseNumber > 20) {
alanbtn().playText("Please try that again");
} else if (article) {
window.open(article.url, "_blank");
alanbtn().playText("Opening...");
}
}
},
}).setVisualState({ answer: country });
}, [country]);
国家作为道具传递给这个组件。
解决方案
推荐阅读
- c# - SqlCommandBuilder 生成不正确的更新语句
- java - 在迭代列表时从列表中删除项目
- node.js - 过去 30 天内每天售出的订单
- php - Laravel Eloquent 使用过滤器获取嵌套子级
- c - 如何在另一个链表中获取链表的奇数索引节点?我不想使用双指针
- sql - SQL 错误 [8152] [22001]:插入时字符串或二进制数据将被截断
- reactjs - 地理编码 API - 地址未更新为经纬度,而是作为邮政编码文本保存到数据库
- javascript - MSTeams Bot 在网络聊天测试中工作,但在 msteams 中不工作
- javascript - 加速移动页面(AMP):在窗口滚动时使用 javascript 获取当前视口的顶部位置
- javascript - jQuery innerHTML 编辑