reactjs - 在 typescript 类中设置未定义的属性

标签 reactjs typescript

我有一个类似这样的类(class)

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() 时设置该值。

我不想将对象初始化为一些垃圾,然后将其替换为以太。感觉我在这里遗漏了一些明显的东西。

最佳答案

this 在 TypeScript 中可能相当棘手。正如 @ecraig12345 在评论中指出的那样,this 行为实际上来自 JavaScript。当传递方法的引用时,在某些情况下您会丢失上下文。 This answer提供了很好的解释。您还可以在 TypeScript documentation 中了解更多信息。 .

对于您的情况,我建议您执行以下操作。这是一种非常常见的语法。

onClick={e => this.connect(e)}

关于reactjs - 在 typescript 类中设置未定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55201841/

相关文章:

javascript - 如何添加 Jasmine 自定义匹配器 Typescript 定义?

javascript - 样式组件文本或段落

reactjs - 上传单个文件时,Filepond在提交 "real"文件之前先提交一个空文件

javascript - 如何从 ReactJS 生产版本中删除 process.env.NODE_ENV 检查?

javascript - 以字符串形式返回 React 的方法 'return'

javascript - 使用 React 处理登录的基本方法

javascript - 在每个页面上将 <Link> 与 React Router 一起使用时,Props 始终未定义

typescript - TS2339 - 'Property doesn' t 存在于明显有效的 TS 文件中的类型错误

javascript - React Material-UI slider 值不断重置为零

javascript - Angular2 View 不更新从共享服务更改的数据