使用来自另一个节点(反应)的值进行GraphQL过滤

时间:2018-07-12 11:42:10

标签: reactjs filter graphql

大家早上好。

最近我一直在尝试GraphQL并为一个小型个人项目做出反应。我目前正在尝试进行某种“标签搜索”,但是我无法使其以我想要的方式工作。 首先是架构:

type Book{
    id: ID
    name: String
    tags: [Tag]
}

type Tag {
    id: ID
    name: String
}

使用该架构,我想在标签搜索中放入“ fantasy”和“ romantic”之类的标签,查询将只返回每一个具有“ fantasy”或“ romantic”标签的Book。我想放入尽可能多的标签,而我发现的每个示例都只包含一个ID或一个名字……或者我弄错了。 我已经搜索了很多问题,但仍然不知道该怎么做,因此,如果以前已经回答过,我将非常抱歉。

这是我当前应该执行的工作图书组件:

const Books= () => (
    <Query query={gql`
    {
        Book {
              name
              tags {
                    name
              }
        }
     }`}>
     {({ loading, error, data }) => {
         if (loading) return <p>Loading...</p>
         if (error) return <p>Sorry, something wrong happened.</p>
         return data.Book.map((currentBook) => (
             <Book book={currentBook} />
         ));
     }}
     </Query>
);
export default Books;

让我们留下来做

Book {
     name
     tags(name: ["fantasy", "romantic"]){
          name
     }
}

我发现的唯一方法是将标签从node转换为String数组。但这确实不是我要解决的解决方案。

非常感谢。

0 个答案:

没有答案