React-每个浏览器会话仅初始化一次计时器功能

时间:2018-07-01 11:27:59

标签: javascript reactjs firefox-addon session-state firefox-webextensions

我有一个基本的firefox Web扩展-react app。

我希望它具有的基本功能是:当我单击弹出窗口时,计时器启动,并一直持续到关闭浏览器窗口。

这是反应代码:

import React from "react";
import ReactDOM from "react-dom";

class Popup extends React.Component {
 constructor(props) { 
   super(props);
   this.state = { time: 0 };

   this.timer = this.timer.bind(this);
  this.timeIt = this.timeIt.bind(this);
} 
componentWillMount() { 
  this.timer();
} 

timer() { 
  setInterval(this.timeIt, 1000);
} 

timeIt() { 
  let x = this.state.time + 1;
  this.setState({ time: x });
} 

render() { 
  return (
    <div>
      <h1>{this.state.time}</h1>
    </div>
  );
} 
} 

ReactDOM.render(<Popup />, document.getElementById("app"));

具有此功能,每次我单击弹出窗口时,计时器都会重新启动。

如何在每个浏览器会话中仅初始化一次计时器?

(也许使用Window.sessionStorage作为标志?还是这种情况有内置功能?)

0 个答案:

没有答案