Appearance
关于事件处理器
本节目标:理解“关于事件处理器”的核心思路,并能把它用于实际开发或面试表达。 错误边界无法捕获事件处理器内部的错误。
React不需要错误边界来捕获事件处理器中的错误。 与render方法和生命周期方法不同,事件处理器不会在渲染期间触发。 因此,如果它们抛出异常,React仍然能够知道需要在屏幕上显示什么。
如果你需要在事件处理器内部捕获错误,使用普通的 JavaScript try / catch 语句:
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = { error: null };
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
try {
//执行操作,如有错误则会抛出
} catch (error) {
this.setState({ error });
}
}
render() {
if (this.state.error) {
return <h1>Caught an error.</h1>
}
return (
<button
onClick={this.handleClick}
>Click Me
</button>
)
}
}