代码之家  ›  专栏  ›  技术社区  ›  Javier Manzano

阿波罗客户端用来发出多个请求进行实时搜索

  •  0
  • Javier Manzano  · 技术社区  · 8 年前

    文件上说我们必须使用新的 <Query /> https://www.apollographql.com/docs/react/essentials/queries.html#manual-query

    我不知道我是否正确,或者我们应该用另一种方式。

    谢谢!

    1 回复  |  直到 8 年前
        1
  •  1
  •   Yuriy Rypka    8 年前

    正如在您共享的链接上所说的,如果您想延迟启动查询,直到用户执行某个操作(您的案例),例如单击按钮,那么您需要使用 ApolloConsumer client.query() 相反。

    Query 查询 组件,Apollo客户端在呈现期间自动触发查询。

        2
  •  0
  •   Joe Ng'ethe    6 年前

    更新

    使用Apollo Client V2.6,现在可以使用钩子手动查询服务器。你想要的钩子是 useLazyQuery .

    你会有这样的东西;

    const [onSearch, { called, loading, data }] = useLazyQuery(
        SEARCH_QUERY,
        { variables: { searchText: state.searchText } }
      );
    

    然后你可以打电话给 onSearch 每当文本在 useEffect 就像下面一样。

    useEffect(() => {
    onSearch()
    }, [state.searchText])
    

    请注意,您可能希望 dounce 你的 这样你就不会在每一次击键时都敲你的服务器了。

    推荐文章