首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在React中为音频添加字幕

问在React中为音频添加字幕
EN

Stack Overflow用户
提问于 2020-09-10 01:58:32
回答 1查看 159关注 0票数 1

我正在尝试为我的应用程序添加字幕,这是我用React编写的。

我一直在尝试使用setTimeout,如下所示。它在一开始就像它应该的那样运行。

代码语言:javascript
复制
const [paragraphs] = useState(IntroContent.intro.paragraphs);
const [displayParagraph, setDisplayParagraph] = useState("");
const [index, setIndex] = useState(0);

const timeoutDelays = [0, 5000, 4000, 5000, 5000, 11000, 10000, 7000, 0];

const changeParagraph = () => {
  setDisplayParagraph(paragraphs[index]);
  setIndex(index + 1);
}

setTimeout(changeParagraph, timeoutDelays[index]);

字幕以足够接近的时间滚动,但当滚动到第三个字幕时,它们开始转到前一个字幕,然后在间隔后再次切换到正确的字幕,然后继续这样做,直到结束。

我试过clearTimeout,但它不能解决我的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-10 02:14:26

因为您已经对每个索引调用了2次setState (setDisplayParagraph和setIndex),所以它将重新呈现2次,也会调用setTimeout 2次。您应该在使用useEffect呈现组件之后调用函数setTimeout,并且应该只在index发生变化时调用:

代码语言:javascript
复制
useEffect(() => {
    setTimeout(changeParagraph, timeoutDelays[index]);
}, [index])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63817103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档