react.js:20157 Uncaught Invariant Violation: _registerComponent(...): Target container is not a DOM

1、错误描述

react.js:20157 Uncaught Invariant Violation: _registerComponent(...): Target container is not a DOM element.

2、错误原因

<script>
var ea = React.createClass({
 render: function() {
		          var elapsed = Math.round(this.props.elapsed  / 100);
		          var seconds = elapsed / 10 + (elapsed % 10 ? '' : '.0' );
		          var message = '开始计时:' + seconds + ' 秒';
		
		          return React.DOM.p(null, message);
		        }
		    });
		
		    var eaf = React.createFactory(ea);
			var timer = document.getElementById('timer');
		    var startTime = new Date().getTime();
		      setInterval(function() {
		        ReactDOM.render(
		          eaf({elapsed: new Date().getTime() - startTime}),timer
		        );
		    }, 1000);
		</script>
在定时器中需要获取div容器对象,这里利用变量timer来实现;但是会出现这个错误

3、解决办法

<script>
			var ea = React.createClass({
		        render: function() {
		          var elapsed = Math.round(this.props.elapsed  / 100);
		          var seconds = elapsed / 10 + (elapsed % 10 ? '' : '.0' );
		          var message = '开始计时:' + seconds + ' 秒';
		
		          return React.DOM.p(null, message);
		        }
		    });
		
		    var eaf = React.createFactory(ea);
		    var startTime = new Date().getTime();
		      setInterval(function() {
		        ReactDOM.render(
		          eaf({elapsed: new Date().getTime() - startTime}),document.getElementById('timer')
		        );
		    }, 1000);
		</script>
不利于中间变量timer,直接利用JS获取对象的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值