请记住以下代码:
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()
,该方法也不起作用。上面有灯吗?谢谢!
foo()
此处恰好bar
在所需的超时后执行。还是我完全错了,它立即执行,只在期望的时间之后返回值?
bar
,而不是调用它并传递其返回值的原因。您是否期望行为foo(bar())
会改变,取决于foo
正在做什么?那真的很奇怪。
foo(bar())
则bar
是先执行和其返回值传递给foo
。