请记住以下代码:
var Component = React.createClass({
getInitialState: function () {
return {position: 0};
},
componentDidMount: function () {
setTimeout(this.setState({position: 1}), 3000);
},
render: function () {
return (
<div className="component">
{this.state.position}
</div>
);
}
});
ReactDOM.render(
<Component />,
document.getElementById('main')
);
难道不应该在3秒后改变状态吗?它立即改变。
我的主要目标是每3秒更改一次状态(使用setInterval()
),但由于它不起作用,因此我尝试了setTimeout()
,该方法也不起作用。上面有灯吗?谢谢!
有3种方法可以访问“ setTimeout”函数内部的范围
第一,
其次是使用ES6箭头功能,导致箭头功能本身没有作用域(此)
第三个是在函数内部绑定范围