Javascript 无法更新ReactJs中的特定类

Javascript 无法更新ReactJs中的特定类,javascript,reactjs,Javascript,Reactjs,我试图在使用React.js构建的页面中动态更新日期时间值。因此,作为参考,我从以下文章开始: 但是日期时间值没有更新。 这是我的密码: var WelcomeMsg = React.createClass({ render : function() { return ( <div> <h2>Hello , User...</h2> </div> ) } }); var Sh

我试图在使用React.js构建的页面中动态更新日期时间值。因此,作为参考,我从以下文章开始:

但是日期时间值没有更新。 这是我的密码:

var WelcomeMsg = React.createClass({ 
  render : function()
  {
    return (
      <div>
        <h2>Hello , User...</h2>
      </div>
    )
  }
});

var ShowTime = React.createClass({ 
  render : function()
  {
    return (
    <div>
      <h2>It is {new Date().toLocaleTimeString()}.</h2>
    </div>
      )

  }
});


var Form=React.createClass({
 render:function(){ return(
  <div>
    <WelcomeMsg/>
     <ShowTime/>
  </div>
  )}
});

ReactDOM.render(<Form/>,document.body);
setInterval(ShowTime, 1000);
var WelcomeMsg=React.createClass({
render:function()
{
返回(
你好,用户。。。
)
}
});
var ShowTime=React.createClass({
render:function()
{
返回(
它是{new Date().toLocaleTimeString()}。
)
}
});
var Form=React.createClass({
render:function(){return(
)}
});
render(,document.body);
设置间隔(显示时间,1000);

我需要将ShowTime作为一个单独的类。

正如@Shubham Jain所提到的,从这里删除setInterval:

ReactDOM.render(<Form/>,document.body);
setInterval(ShowTime, 1000);
并使用setInterval将该状态更新为:

setInterval(() => {
  this.setState({ time: new Date().toLocaleTimeString() })
}, 1000)

然后可以在渲染中使用
{this.state.time}
代替
{new Date().toLocaleTimeString()}

如@Shubham Jain所述,从此处删除setInterval:

ReactDOM.render(<Form/>,document.body);
setInterval(ShowTime, 1000);
并使用setInterval将该状态更新为:

setInterval(() => {
  this.setState({ time: new Date().toLocaleTimeString() })
}, 1000)

然后可以在render中使用
{this.state.time}
代替
{new Date().toLocaleTimeString()}

我的代码在ES6中实现

class HelloWidget extends React.Component{
    constructor(props) {
      super(props);
      this.state = {
            time: new Date().toLocaleString()
      };
    }

    componentDidMount(){
        setInterval(() => {
          this.setState({ time : new Date().toLocaleString() })
        },1000)
    }

    render() {
        return (
            <div>{this.state.time}</div>
        )
    }
  }
类HelloWidget扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
时间:新日期().toLocaleString()
};
}
componentDidMount(){
设置间隔(()=>{
this.setState({time:new Date().toLocaleString()})
},1000)
}
render(){
返回(
{this.state.time}
)
}
}

我的代码在ES6中实现

class HelloWidget extends React.Component{
    constructor(props) {
      super(props);
      this.state = {
            time: new Date().toLocaleString()
      };
    }

    componentDidMount(){
        setInterval(() => {
          this.setState({ time : new Date().toLocaleString() })
        },1000)
    }

    render() {
        return (
            <div>{this.state.time}</div>
        )
    }
  }
类HelloWidget扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
时间:新日期().toLocaleString()
};
}
componentDidMount(){
设置间隔(()=>{
this.setState({time:new Date().toLocaleString()})
},1000)
}
render(){
返回(
{this.state.time}
)
}
}

您需要设置处于该状态的时间,然后每1000毫秒更新一次该状态,然后当您更新该状态时,组件本身将重新加载。您调用setInterval的方式无助于您更新时间。您能共享预期和实际输出吗?@AanchalSharma:预期输出:实际输出:时间没有动态更新。@ShubhamJain:您能用少量代码或参考来解释一下吗?您需要在状态中设置时间,然后在每次更新后更新该状态1000毫秒,然后当您更新状态时,组件本身将重新启动。您调用setInterval的方式无助于您更新时间。您能共享预期和实际输出吗?@AanchalSharma:预期输出:实际输出:时间没有动态更新。@ShubhamJain:您能用少量代码或参考来解释一下吗?