我们可以在class Parent extends React.Component {
constructor(props) {
super(props);
this.childTwo = React.createRef();
}
newUserCreated = () => {
this.childTwo.current.updateTable();
};
render() {
return (
<div className="App">
<ChildOne newUserCreated={this.newUserCreated} />
<ChildTwo ref={this.childTwo} />
</div>
);
}
}
class ChildOne extends React.Component {
handleSubmit = () => {
this.props.newUserCreated();
};
render() {
return <button onClick={this.handleSubmit}>Submit</button>;
}
}
class ChildTwo extends React.Component {
updateTable() {
console.log("Update Table");
}
render() {
return <div />;
}
}
中使用Try / Catch吗?
我觉得Try / Catch应该在QueuedTask.Run()
之外,但我没有理由。请说明是否保留在QueuedTask.Run()
QueuedTask.Run()
答案 0 :(得分:0)
如果您没有理由在室外处理它,那么可以在内部处理它。只要能够正确处理异常,就应该始终处理异常。所以我会去里面的。
我对ArcGIS没有任何专业知识,但是如果QueuedTask.Run
可以抛出它自己的异常(不是由您的委托生成的异常),您就不会以这种方式捕获它们。但是,无论如何,您应该分开处理。
还需要考虑,QueuedTask.Run
似乎是async
的操作。因此,要捕获任何异常,您需要先await
。如果不能,那么您肯定需要将其捕获。
因此,确切的答案是:取决于。 glenebob评论说,这也可能是上下文决定:
我看到的唯一可能的问题是从后台线程调用
DialogService.ShowPrompt()
。
附带说明:您只能将catch all exceptions作为最后的手段。参见this。