首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react和ruby-graphql进行无限滚动

使用react和ruby-graphql进行无限滚动
EN

Stack Overflow用户
提问于 2019-06-25 03:41:39
回答 1查看 119关注 0票数 0

我试着用react-infinite-scroll-component做无限的滚动。我遇到的问题是如何使用Apollo client for ruby-graphQl获取数据

这就是我尝试过的。但它甚至无法知道逻辑是否有效。我怎么才能让它工作呢?

代码语言:javascript
复制
class Users extends React.Component {
  state = {
    items: { users: [] },
    cursor: 0
  };

  fetchMoreData = () => {
    console.log("until here works");

    return (
      <Query
        query={get_users}
        variables={{ limit: 9, skip: cursor }}
        fetchPolicy="cache-and-network"
      >
        {({ data }) => {
          console.log("never reached this point");

          return this.setState({
            items: data,
            cursor: cursor + 9
          });
        }}
      </Query>
    );
  };

  render() {
    this.fetchMoreData();
    const { items } = this.state;

    return (
       <InfiniteScroll
        dataLength={items.users.length}
        next={this.fetchMoreData}
        hasMore
        loader={<h4>Loading...</h4>}
      >
         <UsersList items={items} />
      </InfiniteScroll>
    );
  }
}

export default Users;
EN

回答 1

Stack Overflow用户

发布于 2019-06-25 22:38:43

移动注释行:

代码语言:javascript
复制
  render() {
    this.fetchMoreData(); // move this line from here to `componentWillMount`
    const { items } = this.state;

componentWillMount将获取数据并

代码语言:javascript
复制
componentWillMount(){
   this.fetchMoreData();
}

另外,你需要推入数组而不是设置它。首先,确保从Query获得哪种类型的data,然后再从concat获取到您的阵列。

代码语言:javascript
复制
return this.setState({
      items: this.state.items.concat( data ) //make sure yr data is properly concatenate!
      cursor: cursor + 9
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56742968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档