在React-Native中使用另一个文件进行域查询

时间:2017-03-26 17:03:51

标签: javascript react-native realm

我是React-Native的新手,我使用Realm作为我的数据库。我试图创建一个包含所有领域查询的类,我将在我的组件中使用它。 Today.js Queries.js 位于同一文件夹中。我在Today.js上有这个

import Queries from './Queries'
componentDidMount() {
   this._isMounted = true;
   let a = Queries.getAllExpenses();
}

这就是我在 Queries.js 上的内容。

import Realm from 'realm'
let realm = new Realm({
schema: 
[
    {
    name: 'Expenses', 
    properties: 
        {
            id: 'int',
            value: 'int', 
            category: 'string', 
            description: 'string', 
            date: 'string', 
        }
    },
    {
    name: 'Categories', 
    properties: 
        { 
            id: 'int',
            name: 'string',
        }
    },
]
})

export default class Queries {
getAllExpenses() {
    let data = realm.objects('Expenses');
    let allExpenses = [];
    let i=0;
    for (; i <= data.length; i++) {
      allExpenses.push(data[i]);
    }
    return allExpenses;
}
getAllCategories() {
    return realm.objects('Categories');
};
}

我收到错误 undefined不是一个函数(评估&#39; _Queries2.default.getAllExpenses()&#39;) 我做错了吗?我很乐意为你提供帮助。

1 个答案:

答案 0 :(得分:1)

看起来你试图直接在类上调用getAllExpenses方法,而不是在类的实例上。

您应该更改导出语句以实例化类:export default new Queries(并将类定义本身移动到导出语句之上),或者如果要使用,则可以将方法标记为static你的类更像是命名空间。