-1
私はちょうどタイマーの作成のチュートリアルを見て、それを自分で試してみましたが、どのように新しいDate() - Date.now();私はこれをハードコードすると、私に0を与えます。しかし、Date.now()が小道具として渡された場合、それは増分されます。誰でも説明できますか?React js - タイマーに必要な明確化
これは私のApp.jsファイルです。
import React, { Component } from 'react';
import Timer from './Timer';
import './App.css';
class App extends Component {
render() {
return (
<div className='App'>
<Timer start={Date.now()} />
</div>
);
}
}
export default App;
これは私のTimer.jsがあなたの親App component
は一度しかレンダリングしているので、start
小道具は一度だけ設定されているため
import React,{ Component } from 'react';
class Timer extends Component {
componentDidMount()
{
console.log("component is mounted");
setInterval(this.timer,1000);
}
constructor(props){
super(props);
this.state = {clock:0};
this.timer = this.timer.bind(this);
}
timer()
{
this.setState({clock:new Date() - this.props.start});
}
render(){
var clock = Math.round(this.state.clock/1000);
return(
<div>
<p> you are in this site for </p>
<span > {clock} </span>
<br />
<p> seconds </p>
</div>
);
}
}
export default Timer ;
参考になっおかげでたくさんの結果。しかし、私はコンソールログ新しいDate() - >それは私にオブジェクトとしてo/pを与える。しかし、Objectから数値を減算するにはどうしたらいいですか? – Shyam
@Shyam Dateオブジェクトに対して 'getTime'メソッドを使用し、Date.now()を引くことができるタイムスタンプを取得できます。基本的に: 'var date = new Date();'そして ':date.getTime() - Date.now()' –
@DanielAndreiありがとう。しかし、上記のコードもうまくいくので、困惑してしまいます。 – Shyam