我有一节课看起来像这样
export class TestScreen extends Component<any, LoginScreenState> {
private wallet: Wallet;
async connect() {
this.wallet = WAL.accessContext.initWallet(getWalletProviders()[0]);
....
}
render() {
return (
<div>
<button onClick={this.connect}>Connect</button>
<br />
</div>
);
}
}
我得到以下错误
Unhandled Rejection (TypeError): Cannot set property 'wallet' of undefined
我理解这个错误,但我不确定这里使用的正确模式是什么。我只想在运行connect()时设置该值。
我不想将对象初始化为一些垃圾,然后将其替换为以太。感觉我错过了一些显而易见的东西。
最佳答案
在TypeScript,this
可能相当棘手。“cc>”行为实际上来自JavaScript,正如@ EcRig121245在评论中指出的那样。传递方法引用时,有时会丢失上下文。AA>提供了一个很好的解释。你也可以在This answer中了解更多。
在你的情况下,我建议你做以下事情。这是一个非常常见的语法。
onClick={e => this.connect(e)}