我有一节课看起来像这样

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)}

10-04 22:07