我刚开始使用react并试图获得实际的日期和时间,但我不知道该怎么做 :(
有人可以帮我吗!
我尝试在初始状态下获取日期并每秒实现一次。当我运行它时,我得到一个白屏。
import React from 'react';
import './Menubar.css';
import Time from 'react-time';
const Menubar = React.createClass({
getInitialState() {
return {
now: new Date().now(),
};
},
getRealTime: function() {
this.setState(
{
now: new Date().now(),
})
},
/**
* Render the Menubar component
* @return {Component} the App Component rendered
*/
render() {
setInterval(this.getRealTime(), 1000);
return (
<div className="Menubar">
<ul className="Menubar-menu">
<div className="">
<li className="Menubar-name">login name</li>
<li className="Menubar-date"><Time value={this.state.now} format="DD/MM/YYYY" /></li>
<li className="Menubar-time"><Time value={this.state.now} format="HH:mm:ss" /></li>
</div>
</ul>
</div>
);
}
});
export default Menubar;
最佳答案
两件事情:
new Date().now()
不是函数,new Date()
返回当前日期和时间,因此无需添加。 getRealTime
,这会导致重新渲染)。据我了解,您希望每秒更新一次时间。您可以在 componentDidMount
中进行设置. 这是修复了这些问题的菜单栏组件。我还清除了组件卸载时的间隔:
const Menubar = React.createClass({
getInitialState() {
return {
now: new Date(),
};
this.interval = null;
},
componentDidMount: function() {
const self = this;
self.interval = setInterval(function() {
self.setState({
now: new Date(),
});
}, 1000);
},
componentWillUnmount: function() {
clearInterval(this.interval);
},
render() {
return (
<div className="Menubar">
<ul className="Menubar-menu">
<div className="">
<li className="Menubar-name">login name</li>
<li className="Menubar-date"><Time value={this.state.now} format="DD/MM/YYYY" /></li>
<li className="Menubar-time"><Time value={this.state.now} format="HH:mm:ss" /></li>
</div>
</ul>
</div>
);
}
});
关于date - 如何正确获取日期和时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40575501/