【发布时间】:2020-07-03 11:40:21
【问题描述】:
数组的每个元素都应该显示一段时间,每个元素显示的时间应该由每个元素中的值决定。
let array=[{display:"a",time:10},{display:"b",time:15},{display:"c",time:22}]
class App extends React.Component{
state={stateDisplay:"",
stateTime:""
}
componentWillMount(){
var i=0;
let handle=setInterval(()=>{
var element= array[i]
this.setState({
stateDisplay:element.display,
stateTime:element.time,
})
i=i+1;
if(i===array.length){
clearInterval(handle)
}
},10000)
}
render(){
return(
<div> {this.state.stateDisplay} </div>
)}}
我做过类似的事情,但是使用 setinterval 只能将延迟设置为一个恒定的时间,这里是 10 秒。 我希望第一个元素显示 10 秒,然后下一个元素显示 15 秒,第三个元素显示 22 秒,这是数组中每个元素的时间值。 我知道我不能使用 setinterval 做到这一点有没有办法使用 Settimeout 做到这一点?
【问题讨论】:
-
您应该发布最低限度的可重现示例。访问stackoverflow.com/help/minimal-reproducible-example
-
@TheAlpha93 现在我已经给出了一个例子,请检查它并提供问题的解决方案。谢谢
-
@ArvindShrivastava 我是编码新手。我不懂打字稿所以请帮助我理解 js 中的答案
标签: javascript arrays reactjs react-native settimeout