【发布时间】:2020-10-12 14:45:19
【问题描述】:
我正在尝试设置计时器或间隔。这样每 X 秒就会在屏幕上显示一个新数据。我目前有一组对象,我想同时显示一个对象,并且每 X 秒刷新一次数据。
这是我的 json:
{
"exampleData": [
{
"id": 1,
"title": "fun film",
"genre": "comedy"
},
{
"id": 2,
"title": "not so fun film",
"genre": "horror"
}
]
}
这是我的小地图功能:
const renderExample= data.exampleData.map(function (data, idx) {
return (
<h2 key={idx}>
{data.title}
{data.genre}
</h2>
)
});
因此,当渲染组件时,我希望显示第一个对象:标题:有趣的电影和流派喜剧然后在 X 秒后我希望显示另一个对象不是这样有趣的电影,类型恐怖
我正在考虑将 useEffect 与 setTimout 一起使用,但我不太确定从哪里开始。有什么建议吗?
【问题讨论】:
-
考虑从尝试实现您最初的想法开始?
-
你的做法是合理的。提示:使用
useState存储元素的当前索引。您可以使用数组的长度和模运算符定期更新useEffect中的状态。你应该先自己尝试。 -
@trixn 是的,如果可能的话。我正在努力使用useEffect。我创建了一个 [index, setIndex] 状态并计算数组的长度。但是,我仍然一次渲染所有项目。
-
也许可以阅读this tutorial,然后让我们知道您是否仍然遇到问题。实际上,当我在网上搜索时,我发现到处都是很棒的教程,所以你真的卡在哪里了? “不太确定从哪里开始”真的很模糊。尝试将其提炼为更具体的问题。
标签: javascript reactjs use-effect