为函数创建单独的类

时间:2019-06-16 18:59:21

标签: javascript react-native

我正在尝试创建一个加载程序/处理程序类,但似乎无法使该函数显示在其他类中。我将该类导入到index.js中,并且试图调用这些函数,但它们不起作用。

这就是我在index.js中所做的,但是没有任何功能出现。

import * as QueryHandler from "./src/api/QueryHandler";
QueryHandler.

这是我的查询处理程序类。

class QueryHandler{
    constructor();

    createConnection() {
        const client = new ApolloClient({
            // uri: url
        });
    }
}
exports.QueryHandler = QueryHandler;

我希望能够在index.js文件中调用createConnection方法。

1 个答案:

答案 0 :(得分:4)

您编写的createConnection函数是类实例上的方法。这意味着您首先必须实例化一个新的QueryHandler,然后在该实例上调用该函数:

const handler = new QueryHandler();
handler.createConnection()

或者,您可以将其编写为静态方法。这意味着您可以直接在类上调用它,而不必实例化它:

// QueryHandler.js
class QueryHandler{
    static createConnection() {
        const client = new ApolloClient({
            // uri: url
        });
    }
}

export default QueryHandler;
// index.js
import QueryHandler from "./src/api/QueryHandler";
QueryHandler.createConnection()

第三个选择是完全放弃类,而只导出函数。这是最简单的:

// QueryHandler.js
function createConnection() {
    const client = new ApolloClient({
        // uri: url
    });
}

export { createConnection };
// index.js
import { createConnection } from "./src/api/QueryHandler";
createConnection()