Having this code in mind:
var Component = React.createClass({
getInitialState: function () {
return {position: 0};
},
componentDidMount: function () {
setTimeout(this.setState({position: 1}), 3000);
},
render: function () {
return (
{this.state.position}
);
}
});
ReactDOM.render(
,
document.getElementById('main')
);
Isn't the state supposed to change only after 3 seconds? It's changing immediately.
My main goal here is to change the state every 3 seconds (with setInterval()), but since it was not working, I tried setTimeout(), which is not working either. Any lights on this? Thanks!
解决方案
Do
setTimeout(
function() {
this.setState({position: 1});
}
.bind(this),
3000
);
Otherwise, you are passing the result of setState to setTimeout.