我有一个用ES6风格编写的React类,例如:

export default class App extends React.Component {
    constructor(props) {
        super(props);
        let HClass = new HelperClass();
    }
}


和我的助手类(存在于同一文件中)类似:

class HelperClass {
    constructor() {
       this.somevar="";
    }

    some_function= () => {
        //do work
    }
 }


但是,当尝试构造和运行'some_function'方法时,我收到TypeErrors指出该函数未定义。

我的问题是:


实例化HelperClass我做错了什么?
我应该做些类似“反应”的事情,而不是这些助手类吗?它们什么也没渲染,但是我需要它们来管理我从ActiveMQ处理的消息。


谢谢!

最佳答案

当前,new HelperClass()仅在构造函数内部可用。您只能在其中使用some_function

通常,您将执行以下操作:

用于特定方法内部:

// outside the constructor
myMethod() {
  let HClass = new HelperClass();
  HClass.some_function();
}


适用于任何方法:

// inside the constructor
this.props.HClass = new HelperClass();

// to call
this.props.HClass.some_function();


或者,只需使用以下命令:

// inside the constructor
this.HClass = newHelperClass();

// to call
this.HClass.some_function();

10-02 13:04