![](/img/trans.png)
[英]Javascript - How is this clock function updating time if there is no setInterval function?
[英]clock with setInterval not updating time
愚蠢的。 是react docs代码。 https://codepen.io/gaearon/pen/gwoJZk?editors=0010
我正在尝试在本地设置中运行react docs给出的时钟,并稍加修改,但是时钟显示的是当前时间,没有以秒或分钟为单位的增量。
//组件/Clock.js
import React from 'react';
function tick() {
const element = (
<div>
<h1>Hello, world!</h1>
<h2>It is {new Date().toLocaleTimeString()}.</h2>
</div>
);
return element;
}
setInterval(tick, 1000);
export default tick;
// src / App.js
import React, { Component } from 'react';
import Clock from './components/Clock';
class App extends Component {
render() {
return (
<div>
<Clock />
</div>
);
}
}
export default App;
为什么时间没有更新?
我为您创建了一个示例。 实际上,您必须使用setInterval,并且需要将当前时间存储到组件的状态中。
您的版本中未使用setInterval。 您只需导出刻度组件。 在刻度内移动setInterval
正确的反应方式是
const myInterval; // Useful for manage and refer to the setinteval object
updateTime = () => setState({currentTime: new Date().toLocaleTimeString())
startInterval = () => myInterval = setInterval(updateTime, 1000);
在渲染中:
<div>
{this.state.currentTime}
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.