我读了Dan写的article。在下面的示例中
class ProfilePage extends React.Component {
showMessage = (user) => {
alert('Followed ' + user);
};
handleClick = () => {
const props = this.props;
setTimeout(() => this.showMessage(props.user), 3000);
};
render() {
return <button onClick={this.handleClick}>Follow</button>;
}
}
props
更改后,this.props
为什么不更改,因为两者都指向同一个参考?
答案 0 :(得分:0)
props
对象是不可变的,在收到新道具的情况下,this.props
引用可能会随时间变化。
应该是:
handleClick = () => {
setTimeout(() => {
const { props } = this;
this.showMessage(props.user);
}, 3000);
};
此外,应该跟踪超时,以便在组件卸载时取消超时,以防止泄漏和异常。