reactjs - 如何在 Amplify 数据存储中创建动态查询

标签 reactjs typescript datastore aws-amplify

如何在 amplify React 应用程序中创建动态查询

预期查询:

const posts = await DataStore.query(Post, c => c.or(
  c => c.rating("gt", 4).status("eq", PostStatus.PUBLISHED)
));

“评级”和“状态”可能会根据用户的不同而改变。请帮助我创建动态数据存储查询。

最佳答案

假设您有一个对象,它定义哪些用户可以使用哪些过滤器查询。这里我假设用户可以有两种类型 typeA 和 typeB。

const queryTable = {
    typeA: ['status', 'rating'],
    typeB: ['active', 'status']
}

const posts = await DataStore.query(Post, c => c.or(
    c => {
        const operator = "eq" || "gt";
        const value = 4 || "published";
        queryTable[user.type].forEach(func, => {
            c.[func](operator, value)
        })
        return c
    }
));

您必须找到一种传递运算符和值的方法。

关于reactjs - 如何在 Amplify 数据存储中创建动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68345250/

相关文章:

javascript - 如何处理 javascript 中动态更改深层嵌套对象的 'undefined' 错误

css - 从 SCSS 中提取 CSS 并在 React 应用程序中延迟延迟加载

mongodb - NoSQL 中的多个不等式条件(范围查询)

javascript - 高级 JavaScript 数据存储和网格小部件

javascript - 如何在不重新创建 React 中的整个列表的情况下更新项目

reactjs - 我的简单的react.js应用程序是我手机上的空白页面(但可以在我的台式机和平板电脑上运行)。为什么?

javascript - 如何将js文件捆绑在 "dist"文件夹(Angular 7)中?

angular - 异步管道的混淆行为(Angular)

typescript - typescript 中的lambda表达式类型

datastore - Emberjs 数据存储示例