在 React 中从 WatermelonDB 中获取数据

Fetch Data from WatermelonDB in React

我正在使用 WatermelonDB 作为我的应用程序的本地数据库。 我在 class AccessDB:

中有一个方法 getPlaces()
static async getPlaces() {
        const postsCollection = database.collections.get('places');
        const allPosts = await postsCollection.query().fetch();
        return allPosts;
}

使用带有异步和等待的 AccessDB.getPlaces() 调用 getPlaces()。如何获取与查询匹配的结果?

可能是我理解的不够全面。但是您是否尝试将查询放入 query 方法

const allPosts = await postsCollection.query(Q.where('is_verified', true)).fetch();

另外不要忘记 getPlaces 是异步的,你需要 async\await 来获取 return 数据。

变量 allPosts 是一个包含所有 places 的数组。因此,要访问这些地方的属性,您可以使用不同的 class:

import AccessDB from './AccessDB';

然后在某个地方,例如

(async () => {
    try {
        const places = await AccessDB.getPlaces();

        var buffer = '';
        for (place in places) {
            buffer += places[place].name + '\n'
        }
        console.log(buffer)
    } catch(e) {console.log(e)}
})()

使用 console.log 进行调试时必须小心,因为

1) console.log 如果一个接一个快速执行则跳过输出,例如如果你每次在上面的 for 循环中 console.log places[place].name

2) 如果你 console.log(places) 你看到的和你 console.log(database) 看到的一样,这非常令人困惑。您会期望看到 [Object object]、[Object object]...,您在使用 alert(places).

时会看到