TypeError:超级表达式必须为null或函数_inherits

时间:2019-12-05 01:03:33

标签: javascript react-native

我收到此错误:

  

超级表达式必须为null或函数

在以下代码段中:

import SQLite from 'react-native-sqlite-storage';
const DB = SQLite.openDatabase('Data.db');

class Database {
    db;
    constructor(db) {
        this.db = db;
    }
    executeSql = (sql, params = []) =>
        new Promise((resolve, reject) => {
            this.db.transaction((trans) => {
                trans.executeSql(
                    sql,
                    params,
                    (db, results) => {
                        resolve(results);
                    },
                    (error) => {
                        reject(error);
                    }
                );
            });
        });
}
export default new Database(DB);
import Database from '../db';
export class Note extends Database {
    constructor() {
        super();
    }

    all = () => async() => {
        console.log('all');
        const result = await DB.executeSql('Notes', ['params']);
        console.log('result', result);
    };
}

export default new Note();

我的错误在哪里,如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的错误是您试图创建扩展另一个类(Note)的类(Database),但是第二个文件中导入的Database对象是不是类,而是实例化的Class对象。

您不需要扩展数据库(并且您不必扩展,因为它不是类)。您只需要直接导入并使用该方法即可。

import Database from '../db';
export class Note {

    constructor() {
    }

    all = () => async() => {
        console.log('all');
        const result = await Database.executeSql('Notes', ['params']);
        console.log('result', result);
    };
}

export default new Note();