簡體   English   中英

這是在課堂上未定義

[英]this is undefined in class

我有以下課程

class ContractStore {

    clauses = [];

    addClause() {
        this.clauses.push({
            id: uuidv1()
        })
    }

}

export let contractStore = new ContractStore();

然后將其導入為

import { contractStore } from '../store/ContractStore'
...
contractStore.addClause()

而我得到thisundefinedaddClause()方法。 我在這里做錯了什么?

您缺少在此處設置上下文的信息。 您可以通過兩種方式來實現。

箭頭功能方式

class ContractStore {

    clauses = [];

    addClause = () => {
        this.clauses.push({
            id: uuidv1()
        })
    }

}

或綁定方式

class ContractStore {
    constructor() {
      this.addClause = this.addClause.bind(this)
    }
    clauses = [];

    addClause() {
        this.clauses.push({
            id: uuidv1()
        })
    }

}

謝謝。 歡迎反饋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM