Do
setTimeout(
function() {
this.setState({ position: 1 });
}
.bind(this),
3000
);
Otherwise, you are passing the result of setState to setTimeout.
You can also use ES6 arrow functions to avoid the use of this keyword:
setTimeout(
() => this.setState({ position: 1 }),
3000
);