用bind(this),就是绑定this指向这个组件
componentDidMount: function () {
this.timer = setInterval(function () {
var opacity = this.state.opacity;
opacity -= .05;
if (opacity < 0.1) {
opacity = 1.0;
}
this.setState({
opacity: opacity
});
}.bind(this), 100);//绑定this指向这个组件,不绑定setInterval就会指向undefined
}
用箭头函数setInterval里面函数的this会继承外层的this
componentDidMount: function () {
that.timer =setInterval(()=>{
var opacity=this.state.opacity;
opacity-=0.05;
if(opacity<0.1){
opacity=1.0;
}
this.setState({
opacity:opacity
})
},100)
},
闭包,把this传到function里用that接收
componentDidMount: function () {
(function (that) {
that.timer = setInterval(function () {
var opacity = that.state.opacity;
opacity -= .05;
if (opacity < 0.1) {
opacity = 1.0;
}
that.setState({
opacity: opacity
});
}, 100);
})(this)
},